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类中调用它,我会得到一个错误。。