Java中如何将JButton类型的二维数组中的所有JButton添加监听?(可以用for吗?如果

Java中如何将JButton类型的二维数组中的所有JButton添加监听?(可以用for吗?如果,第1张

可以,请看示例:

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class FrameTest extends JFrame implements ActionListener

{

JButton[][] buttonGroup=new JButton[3][3]

public FrameTest()

{

setTitle("Test")

setSize(300,300)

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

setLayout(new GridLayout(3,3))

for(int i=0i<3i++)

for(int j=0j<3j++)

{

buttonGroup[i][j]=new JButton(""+(i*3+j))

add(buttonGroup[i][j])

buttonGroup[i][j].addActionListener(this)

}

}

public static void main(String[] args)

{

new FrameTest().setVisible(true)

}

@Override

public void actionPerformed(ActionEvent e)

{

JButton button=(JButton)e.getSource()

JOptionPane.showMessageDialog(null,button.getText())

}

}

不知道你这个是不是swing实现。类实现事件接口,然后在类中重新事件方法,方法中可以判断按钮id来具体 *** 作;伪代码实现如下

public class MyFrame extends JFrame implements ActionListener{

public MyFrame() {

....

button2.addActionListener(this)

}

/**

* 按钮二的事件响应在此

*/

public void actionPerformed(ActionEvent e) {

if(e.getSource()==button2){

showMsg("你按下了" + button2.getText())

}

...

}

}

你的ActionListener的实现类(假设叫MyAction)应该作为一个单独的私有类放在public class MyApplet里面,把你的actionPerformed方法放在里面:

public class MyApplet extends Applet

{

。。。

private class MyAction implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

。。。。

}

}

}

然后在主类的init方法里,首先创建MyAction的实例ma,然后用addActionListener方法将实例绑定到button


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11409854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存