作者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
1F:→ ogamenewbie:用 if (自己宣告的boolean) 把整 mouseclicked 里的东 06/03 22:26
2F:→ ogamenewbie:西 { } 起来, 然後去16还哪边的输入控制 bool开关 06/03 22:27
3F:→ ogamenewbie:跟i的增减 06/03 22:28
4F:推 ogamenewbie:我说的这个是个笨方法, 其他应该一定还会有更好的方法 06/03 22:28
5F:推 lvlightvivi:只有16无效的话 if(i<16||i>16){i++;} i++写里面 06/03 22:32
6F:→ ogamenewbie:看图是 16, 24, 32...囧 06/03 22:39