java - 如何切换不同类的 JPanel

标签 java swing jpanel

我有三个类,一个是 JFrame 类,两个是 JPanel 类。我已将初始 JPanel 添加到 JFrame 中,如下所示

 public JFrame() {

    add(new 1stPanel(this));


    setVisible(true);
    setLayout(null);
}

然后我想在第一个面板中的按钮上使用 Action 监听器来删除它并添加另一个类中的另一个面板。我尝试给每个类一个变量并使用简单的remove()和add(),如下所示:

private 1stpanel 1p;
private 2ndpanel 2p;

btn.addActionListener((new ActionListener(){
        public void actionPerformed(ActionEvent  e)
            {
            remove(1p);
            add(2p);
            validate();
            repaint();
            }
        }));

这不起作用我也尝试过使用 JFrame.remove(1p) 但这也不起作用。当我执行removeAll()时,它会删除第一个面板JPanel中的所有内容,但我无法添加第二个面板。 我可以使用什么代码取出第一个面板或第一个面板类并添加另一个类中的第二个面板。 感谢您提前提供的帮助。

最佳答案

尝试使用CardLayout并交换卡片(面板)。

您的问题可能是创建add(new 1stPanel(this))。您添加一个局部变量,然后使用类的字段。

关于java - 如何切换不同类的 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17423555/

相关文章:

java - 如何将 HashMap 中的值转换为列表<String>

Java在swing中采样像素颜色

java - 循环图像,java gui?

java - 碰撞检测和 react java

java - 如果我删除了一个不管理此关联的实体,是否有办法让 Hibernate 处理删除 @ManyToMany 关联中的条目?

java - 圆形包装 - java

java - 如何在 swing 中绘制到 JPanel

Java Swing JTabbedPane 将 JPanel 添加到选项卡然后修改它

java - 如何将 JPanel 添加到另一个具有图形的 JPanel 上?

java - 使用 jboss EAP 7 发送 JMS(消息)时出错