我试图将变量设置为新的JPanel,然后在按下按钮后将其添加,但是它不起作用,我也不知道为什么。

码:

private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {
    remove(scriptPanel);
    scriptPanel = new GemPanel();
    add(scriptPanel);
    validate();
    repaint();
    pack();
}


GemPanel只是我制作的JPanel类。当我按下下一个按钮时,它将帧的大小调整为尽可能小,并且实际上什么也没有发生。如果我将其调整为正常大小,原始的scriptPanel仍然存在。

是什么赋予了?

最佳答案

与其尝试删除和添加整个面板,不如使用一种更好,更不易出现问题的方法,是使用允许交换视图的CardLayout。您可以在How to use Cardlayout上看到更多

而且,从方法签名的外观来看,似乎您也在使用Netbeans构建器。您可能还想看看How to Use CardLayout with Netbeans Gui Builder

07-26 09:29