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

标签 java swing hide jframe jpanel

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

最佳答案

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

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

关于java - 如何在 JFrame 中显示/隐藏 JPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4286759/

相关文章:

Java - 具有多个分隔符的扫描器

java - 在 try catch block 中返回。正确吗?

java - drawImage() 不绘制

jquery - 如何根据另一个 div 的内容使用 jQuery 隐藏一个 div

java - 在 IntelliJ 中基于 JPA 实体绘制数据库架构

java - log4j2 生成具有旧日期的文件夹 - Spring Boot

java - KeyEvent 的问题

java - 图像叠加 Java

javascript - 遍历 jQuery 中的 var 链式变量数组

C# 隐藏 WCF 隐藏端点未找到响应