面板仅在调整大小后可见[Java]

问题描述

我的代码有奇怪的问题。我之前遇到了同样的问题,所以我从头开始做这个项目,但是同样的问题再次发生。

我将面板设置为不可见,但是我不知道为什么不调整应用程序大小就无法显示新面板。

Main.java:https://pastebin.com/SPt5bqpF

UI.java:https://pastebin.com/HawM8CTd

Variables.java:https://pastebin.com/QvPPALkU

出现错误代码

public void classAttitudes(){
    
    variables.classesTitleLabel.setVisible(false);
    variables.classesTitlePanel.setVisible(false);
    variables.continueClasspanel.setVisible(false);

    variables.titleAttitudePanel = new JPanel();

    variables.titleAttitudePanel.setBounds(50,50,100,100);
    variables.con.add(variables.titleAttitudePanel);

}

解决方法

public void classAttitudes() {
    variables.classesTitleLabel.setVisible(false);
    variables.classesTitlePanel.setVisible(false);
    variables.continueClassPanel.setVisible(false);

    variables.titleAttitudePanel = new JPanel();

    variables.titleAttitudePanel.setBounds(50,50,100,100);
    variables.con.add(variables.titleAttitudePanel);
    
    // ADD MANUAL REPAINT TO THE FRAME !!!
    variables.window.repaint();
}

PS 调整manin窗口的大小(即JFrame)时,将引发一个动作,并在该动作结束时调用repaint()以重画此框架UI线程中的所有内容(我不记得它的名称)