UI2是我使用IntelliJ的Swing UI设计器-> GUI表单建模的JFrame。 我在此框架中添加了一个按钮,单击该按钮将打开另一个框架。 我想在单击按钮之后和打开另一个框架之前将当前框架的可见性设置为false。而且我无法使用按钮的动作侦听器方法访问当前框架。有小费吗?很抱歉,如果不清楚。
public class UI2 {
JPanel rootPanel;
JPanel northPanel;
JPanel westPanel;
JPanel southPanel;
JButton button1;
JLabel header;
JTextField textField1;
public UI2() {
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFrame frame2 = new JFrame();
frame2.setContentPane(new next_f().Panel1);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.pack();
frame2.setVisible(true);
}
});
}
public static void main(String[] args) {
JFrame frame = new JFrame("UI");
frame.setContentPane(new UI2().rootPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}}
答案 0 :(得分:1)
一种解决方案是只向您的班级添加一个字段。
public class UI2 {
JPanel rootPanel;
JPanel northPanel;
JPanel westPanel;
JPanel southPanel;
JButton button1;
JLabel header;
JTextField textField1;
JFrame showingFrame;
...
}
然后使用您的主要方法。将设置内容窗格更改为。
public static void main(String[] args) {
JFrame frame = new JFrame("UI");
UI2 ui2 = new UI2();
ui2.showingFrame = frame;
frame.setContentPane(ui2.rootPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
现在,UI2中的所有内容都可以访问showingFrame。