java监听类获取事件源名称
我定义了一个按钮数组,然后使用for来循环添加监听,现在要怎么确定按下的具体是哪个按钮,要取得按钮的名字,但是没有getName这个方法for(inti=0;i<=8;i...
我定义了一个按钮数组,然后使用for来循环添加监听,现在要怎么确定按下的具体是哪个按钮,要取得按钮的名字,但是没有getName这个方法
for(int i=0;i<=8;i++){
a[i]=new JButton();
a[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//此处如何获取按钮的name
}
});
a[i].setName(i+"");
game.add(a[i]);
} 展开
for(int i=0;i<=8;i++){
a[i]=new JButton();
a[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//此处如何获取按钮的name
}
});
a[i].setName(i+"");
game.add(a[i]);
} 展开
2个回答
展开全部
举个例子::
KeyAdapter l=new KeyAdapter() //接收键盘事件的抽象适配器
{
public void keyPressed(KeyEvent e)//按下某个键时调用此方法
{
int key=e.getKeyCode(); //keycode键盘上实际键的整数代码。
switch(key)
{
case KeyEvent.VK_LEFT:
Tetris.this.moveLeftAction();;break;
case KeyEvent.VK_RIGHT:
Tetris.this.moveRightAction();break;
case KeyEvent.VK_DOWN:
Tetris.this.softDropAction();break;
case KeyEvent.VK_SPACE:
Tetris.this.hardDropAction();break;
case KeyEvent.VK_P:
Tetris.this.pauseAction();break;
case KeyEvent.VK_UP:
Tetris.this.rotateRightAction();break;
case KeyEvent.VK_C:
if(Tetris.this.pause)
{
Tetris.this.continueAction(); break;
}
case KeyEvent.VK_S:
if(Tetris.this.gameOver)
Tetris.this.startAction();break;
case KeyEvent.VK_Q:
System.exit(0);break;//终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止
}
Tetris.this.repaint(); //重新绘制
}
};
KeyAdapter l=new KeyAdapter() //接收键盘事件的抽象适配器
{
public void keyPressed(KeyEvent e)//按下某个键时调用此方法
{
int key=e.getKeyCode(); //keycode键盘上实际键的整数代码。
switch(key)
{
case KeyEvent.VK_LEFT:
Tetris.this.moveLeftAction();;break;
case KeyEvent.VK_RIGHT:
Tetris.this.moveRightAction();break;
case KeyEvent.VK_DOWN:
Tetris.this.softDropAction();break;
case KeyEvent.VK_SPACE:
Tetris.this.hardDropAction();break;
case KeyEvent.VK_P:
Tetris.this.pauseAction();break;
case KeyEvent.VK_UP:
Tetris.this.rotateRightAction();break;
case KeyEvent.VK_C:
if(Tetris.this.pause)
{
Tetris.this.continueAction(); break;
}
case KeyEvent.VK_S:
if(Tetris.this.gameOver)
Tetris.this.startAction();break;
case KeyEvent.VK_Q:
System.exit(0);break;//终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止
}
Tetris.this.repaint(); //重新绘制
}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询