如何在JFrame中显示/隐藏JPanel?

aha*_*low 16 java swing jpanel jframe hide

我正在开发的应用程序是一个游戏.我想要做的是让JPanels出现在JFrame中,就像文本或消息窗口一样,然后在不再使用时消失.我已经在Netbeans中将这些JPanel设计为外部类,并希望能够在actionPerformed()方法中调用它们.JOptionPanes或其他弹出对话框不是一个选项,因为它们将焦点从游戏中移开.我也看到有人在类似的问题上建议使用CardLayout.这不是我想要的,因为我不只是试图交换窗格.当程序告诉他们时,它们应该消失.我怎么做,比如将它绑定到JButton Action?

dog*_*ane 24

您可以通过调用隐藏JPanel setVisible(false).例如:

public static void main(String args[]){
    JFrame f = new JFrame();
    f.setLayout(new BorderLayout());
    final JPanel p = new JPanel();
    p.add(new JLabel("A Panel"));
    f.add(p, BorderLayout.CENTER);

    //create a button which will hide the panel when clicked.
    JButton b = new JButton("HIDE");
    b.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
                p.setVisible(false);
        }
    });

    f.add(b,BorderLayout.SOUTH);
    f.pack();
    f.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)