我有两个班级:
public class Screen1 extends javax.swing.JFrame {
...
//disables JButton1 after it is clicked on
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
setVisible(false);
....
}
}
另一堂课:
public class Screen2 extends javax.swing.JFrame {
...
//Clicking on JButton2 is supposed to enable JButton1 (from Screen1) again
...
}
现在,再次启用JButton1的最简单方法是什么?我没有从Screen1直接访问JButton1再次可见。我已经研究了 ActionListeners 和 Modal JDialogs 这些似乎来自我的Google搜索,就像一些有希望的方法来解决这个问题(可能?)。 但我真的找不到一个我会理解的例子(我更像是一个Java初学者)。
感谢任何有用的输入!
答案 0 :(得分:1)
请在下面找到这个简单的例子
Screen2默认情况下禁用了JButton
,而Screen1包含另一个可以启用第一个按钮的JButton
。
public class Screen2 extends JPanel {
private JButton button;
public Screen2() {
button = new JButton("Button");
button.setEnabled(false); //the button is disabled by default
this.add(button);// add the button to the screen
}
// this method will be used to enable the button
public void changeButtonStatus(boolean flag) {
button.setEnabled(flag);
}
}
public class Screen1 {
public static void main(String[] args) {
JFrame frame = new JFrame("Screen1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(250, 200);
frame.setLocationRelativeTo(null);
JButton button = new JButton("Enable the button");
Screen2 screen2 = new Screen2();
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
screen2.changeButtonStatus(true); //Call the method that enable the button
}
});
frame.add(screen2, BorderLayout.SOUTH);
frame.add(button, BorderLayout.NORTH);
frame.setVisible(true);
}
}
首先,Screen2 JButton
被禁用
点击屏幕1 JButton
时,屏幕2 JButton
将启用。