首先,我是Java的新手,所以请保持温和。
我有一个JFrame,它有两个'JPanel',其中一个是一个单独的类(我扩展了JPanel)。理想情况下,我想'调度和事件'或通知JFrame上的其他JPanel对象。
我在自定义JPanel类中有一个JButton数组,我想添加一个事件监听器。单击JButton后,我想在另一个JPanel上更改一些内容。
我真的不确定如何做到这一点,所以我将事件处理程序移动到JFrame类中,并尝试执行以下操作:
panel.buttonArray[i][j].addActionListener(this);
但是,这样做根本不起作用。令人讨厌的是,Eclipse也没有抱怨......
关于如何实现这一目标的任何提示?
这是非常可靠的解释,抱歉。
答案 0 :(得分:2)
不考虑面板而是物体方面。作为一个对象,让我们说它有一个名称为object77,有一个对另一个对象的引用,称之为object42,object77可以调用object42上的方法。
object77.methodInObject42();
panel77.methodInPanel42();
至于事件处理程序,那么
buttonOnPanelXX.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
panel77.methodInPanel42();
}});
甚至更好......
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
panel77.methodInPanel42();
}});
}});