首页 文章

在JPanel上使用Jbutton隐藏/显示JFrame

提问于
浏览
0

在我的Swing应用程序中,我有2个JFrame A和B.当我点击JFrame A上的按钮时,它打开JFrame B并隐藏自己(我设法做了那个部分)

在JFrame B上,我有4个放在JTabbedPane上的JPanel . 每个JPanel有2个JButtons .

当我在JPanels上单击Jbutton并再次显示Jframe A时,我正在尝试隐藏JFrame B.

我该怎么做呢?

// JPanel Class

公共类AddItemPanel扩展javax.swing.JPanel {

public AddItemPanel() {
        initComponents();
  }

  private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {                                          

      if(evt.getSource() == btnCancel)
      {
        ItemFrame d = new ItemFrame();      
             d.setVisible(false);// not working
             this.setVisible(false);// not working
      }
}

}

// JFrame类

公共类ItemFrame扩展javax.swing.JFrame {

public ItemFrame() {

        initComponents();
        jTabbedPane1.add("Add Items",new AddItemPanel());
        jTabbedPane1.add("Delete Items",new DeleteItemPanel());
        jTabbedPane1.add("Update Items",new UpdateItemPanel());
        jTabbedPane1.add("Search Items",new SearchItemPanel());
 }

}

1 回答

  • 1

    试试这个例子希望它对你有用

    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class JframeTest implements ActionListener
    {
        JButton b1;
        JButton b2;
        JFrame f1 ;
        JFrame f2;
    
    public void init()
    {
     f1 = new JFrame("Frame one");
     f2 = new JFrame("Frame two");
    
     f1.setSize(400,400);
     f2.setSize(400,400);
    
     f1.setLayout(new FlowLayout());
     f2.setLayout(new FlowLayout());
    
     b1 = new JButton("Open Frame two");
     b2= new JButton("Open Fram one");
     JPanel p1 = new JPanel();
     JPanel p2 = new JPanel();
    
     p1.setBackground(Color.white);
     p2.setBackground(Color.white);
     p1.add(b1);
     p2.add(b2);
    
    f1.getContentPane().add(p1);
    f2.getContentPane().add(p2);
    
    f1.setVisible(true);
    f2.setVisible(false);
    f1.setDefaultCloseOperation(3);
    f2.setDefaultCloseOperation(3);
    
    b1.addActionListener(this);
    b2.addActionListener(this);
    }
    public void actionPerformed(ActionEvent evt)
    {
        if(evt.getSource() == b1)
        {
            f1.setVisible(false);
            f2.setVisible(true);
        }else if(evt.getSource()==b2)
        {
            f1.setVisible(true);
            f2.setVisible(false);
        }
    
    }
    
    public JframeTest()
    {
        this.init();
    }
    public static void main(String...argS)
    {
        new JframeTest();
    }
    }
    

相关问题