Java 组件在将visable设置为false后消失,然后再次设置为true

Java 组件在将visable设置为false后消失,然后再次设置为true,java,swing,Java,Swing,我有一个带有少量设置的程序,它应该是这样的: (抱歉,无法发布图像…) 这是在main中加载的,然后隐藏,然后当我运行其他一些函数,并再次尝试显示它时,它看起来是这样的: (抱歉,无法发布图像…) 有几个按钮是可见的,因为当你把鼠标放在上面时,你可以看到它们,但是你永远看不到3个标签。。。帮助:) 然后问任何问题:) 这就是我所说的设置。。域只是隐藏主菜单部分 }else if(e.getActionCommand().equals("Indstillinger")){ doMa

我有一个带有少量设置的程序,它应该是这样的:
(抱歉,无法发布图像…)
这是在main中加载的,然后隐藏,然后当我运行其他一些函数,并再次尝试显示它时,它看起来是这样的:
(抱歉,无法发布图像…)
有几个按钮是可见的,因为当你把鼠标放在上面时,你可以看到它们,但是你永远看不到3个标签。。。帮助:)

然后问任何问题:)

这就是我所说的设置。。域只是隐藏主菜单部分

}else if(e.getActionCommand().equals("Indstillinger")){
        doMain(false);
        Exit.setVisible(true);
        Exit.setBounds(650, 135, 70, 20);
        returntomain.setVisible(true);
        settings.setvisable(true);
行动。。忘记设置了。setvisable看起来像这样

public void setvisable(boolean doWhat){
    panel1.setVisible(doWhat);
    panel2.setVisible(doWhat);
    panel3.setVisible(doWhat);
}
这是唯一可以从我的设置中访问任何内容的东西

private Image tilfojbillede(int nr) throws IOException{
    String navn=("/Resources/"+Indstillinger.BilledeMappe+"/"+(nr+1)+".png");
    return ImageIO.read(getClass().getResource(navn));
}
设置由3个面板组成,在一个构造器中制作成这样

    panel1.setBounds(50, 150, 150, 200);
    panel1.setVisible(false);
    panel2.setBounds(200, 150, 150, 100);
    panel2.setVisible(false);
    panel3.setBounds(350, 150, 150, 200);
    panel3.setVisible(false);
我在main中调用这两个类,作为一个全局函数,如下所示

    public static Indstillinger settings= new Indstillinger();
    public static Spillet spillet= new Spillet();

我希望你们能从这些信息中帮助我

您需要调用
revalidate()并可能
重新绘制()也是。

请贴上一张海报。否则,我们无法帮助您。让我们看看一些有问题的代码。尽量使其尽可能小,以便1)编译并2)说明问题。(只是猜测)尝试在您正在更改其可见性的组件的容器上调用
revalidate
。每当进行布局更改时,需要调用
revalidate
,我认为不可见元素的大小为零,因此这将是布局更改。revalidate不起作用,只是尝试在所有3个面板上调用它。。不起作用。。可悲的是……)你说的是容器,不是3个面板,而是JFrame,但我不能在main上调用revalidate,就像在main类中那样。revalidate,还是我做错了什么?我不能调用。。。如果我在main中调用它,如果我在settings类中调用它,我会得到一个错误。。