java 按钮是否自动激活?

qxsslcnc  于 2022-12-25  发布在  Java
关注(0)|答案(1)|浏览(115)

我有一个按钮,在一个图形用户界面上,应该打开一个新的图形用户界面,并关闭旧的,但只要我运行代码,它自动打开新的图形用户界面,而不关闭旧的。我也有一个按钮,在新的图形用户界面上,应该重新打开旧的图形用户界面,并关闭新的。我该如何解决这个问题?

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);    
            }   
        }       
    }
3wabscal

3wabscal1#

试试这个。

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.setLocationByPlatform(true);
         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.setLocationByPlatform(true);
         //frame2.setVisible(true);
         frame2.setResizable(false);
         frame2.getContentPane().setBackground(new Color(5, 25, 50));
      
         total = new JButton();
         frame1.add(total);
         total.addActionListener(this);
         total.setText("Total Equipement");
         total.setFocusable(false);
      
         back = new JButton();
         frame2.add(back);
         back.addActionListener(this);
         back.setText("Back");
         back.setFocusable(false);
         
         frame1.pack();
         
      }
   
      @Override
      public void actionPerformed(ActionEvent e) {
      
         if(e.getSource()==total) {
         
            frame1.dispose();
            frame2.setVisible(true);
            frame2.pack();
         
         }
         
         
         if(e.getSource()==back) {
            
            frame2.dispose();
            frame1.setVisible(true);
            frame1.pack();
         }
      }
   
   }

我使frame2在启动时不可见。
我还修复了您的actionPerformed方法,方法是将if语句从另一个方法中取出。

相关问题