作者zirconium (zirconium)
看板java
標題[問題] 同時使用 KeyListener 和 MouseListene
時間Thu Jun 3 21:50:24 2010
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
→ ogamenewbie:用 if (自己宣告的boolean) 把整 mouseclicked 裡的東 06/03 22:26
→ ogamenewbie:西 { } 起來, 然後去16還哪邊的輸入控制 bool開關 06/03 22:27
→ ogamenewbie:跟i的增減 06/03 22:28
推 ogamenewbie:我說的這個是個笨方法, 其他應該一定還會有更好的方法 06/03 22:28
推 lvlightvivi:只有16無效的話 if(i<16||i>16){i++;} i++寫裡面 06/03 22:32
→ ogamenewbie:看圖是 16, 24, 32...囧 06/03 22:39