[問題] 同時使用 KeyListener 和 MouseListene
C1 level 應該吧
程式目標: 滑鼠點擊加上一點按鍵選擇的劇情遊戲
因故事內容包含在圖檔裡面
程式只需在滑鼠點擊時能更換圖片即可
另碰到選擇時能使鍵盤輸入選擇
程式(劇情)架構:
(依圖檔編號)
1→2→.....→16→17→.....→24→18→.....→32→33→.....→end
↓ ↓ ↓
16_1 24_1 32_1
↓ ↓ ↓
... ... ...
↓ ↓ ↓
16_7 24_3 32_3
↓ ↓ ↓
end end end
→為滑鼠點擊進行
→鍵盤鍵入數字鍵 1 or 2 進行
程式簡介:
使用 Jbutton 將圖檔放在上面
┌─────────────────────────┬─┐
│ 1→2→.. 當滑鼠點擊一下後換一張圖 (mouseClicked) │ v│
├─────────────────────────┼─┤
│ 16→17 當來到編號16的圖時 (keyPressed) │ │
│ ↓ 滑鼠點擊無效 │ │
│ 16_1 只有鍵盤選擇 1 or 2 決定程式進行方向 │ │
└─────────────────────────┴─┘
目前難題:
┌─────────────────────────┬─┐
│ 16→17 當來到編號16的圖時 (keyPressed) │ │
│ ↓ 滑鼠點擊無效 │ │
│ 16_1 只有鍵盤選擇 1 or 2 決定程式進行方向 │ │
└─────────────────────────┴─┘
嘗試無效方法(片段)
public void mouseClicked(MouseEvent evt)
{
i++;
if(i<17)
{
btn1.setIcon(new ImageIcon(i+".png"));
}
}
...............
public void keyPressed(KeyEvent evt)
{
int key = evt.getKeyCode();
switch(key)
{
case '1':
if (i==16)
{
i++;
int j = 1;
j++;
while(j==7)
btn1.setIcon(new ImageIcon(i+"_"+j+".png"));
j++;
}
case '2':
i++;
if (i==16)
{
btn1.setIcon(new ImageIcon(i+".png"));
break;
}
}
}
希望版上有高手能看懂我的問題並幫我解答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.18.77
→
06/03 22:26, , 1F
06/03 22:26, 1F
→
06/03 22:27, , 2F
06/03 22:27, 2F
→
06/03 22:28, , 3F
06/03 22:28, 3F
推
06/03 22:28, , 4F
06/03 22:28, 4F
推
06/03 22:32, , 5F
06/03 22:32, 5F
→
06/03 22:39, , 6F
06/03 22:39, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):