我有一个按钮,在一个图形用户界面上,应该打开一个新的图形用户界面,并关闭旧的,但只要我运行代码,它自动打开新的图形用户界面,而不关闭旧的。我也有一个按钮,在新的图形用户界面上,应该重新打开旧的图形用户界面,并关闭新的。我该如何解决这个问题?
public class IA2 extends JFrame implements ActionListener{
JButton total = new JButton();
JButton back = new JButton();
JFrame frame1 = new JFrame();
JFrame frame2 = new JFrame();
IA2(){
frame1.setTitle("Lab equipement");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setLayout(null);
frame1.setSize(500, 425);
frame1.setVisible(true);
frame1.setResizable(false);
frame1.getContentPane().setBackground(new Color(5, 25, 50));
frame2.setTitle("Total Equipement");
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setLayout(null);
frame2.setSize(500, 425);
frame2.setVisible(true);
frame2.setResizable(false);
frame2.getContentPane().setBackground(new Color(5, 25, 50));
total = new JButton();
total.setBounds(50, 10, 150, 75);
frame1.add(total);
total.addActionListener(this);
total.setText("Total Equipement");
total.setFocusable(false);
back = new JButton();
back.setBounds(50, 10, 150, 75);
frame2.add(back);
back.addActionListener(this);
back.setText("Back");
back.setFocusable(false);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==total) {
frame1.dispose();
frame2.setVisible(true);
if(e.getSource()==back) {
frame2.dispose();
frame1.setVisible(true);
}
}
}
1条答案
按热度按时间3wabscal1#
试试这个。
我使
frame2
在启动时不可见。我还修复了您的
actionPerformed
方法,方法是将if语句从另一个方法中取出。