为什么setVisible()会删除我的组件?

时间:2015-04-18 20:24:57

标签: java swing jframe

因此,在下面的代码中,在SetVisible(true)之前放置frame.add(OpeningSplash)可以正常工作(即显示图像),但是将它放在doesn&t之后。我该如何解决这个问题?

public static void main (String Args[]){
    JFrame frame = new JFrame("Swords & Sworcery");               
    frame.setSize(1920,1080);
    frame.setUndecorated(true);
    frame.setVisible(true);
    frame.add(new OpeningSplash());

    final JFXPanel fxPanel = new JFXPanel(); 
    frame.add(fxPanel); 
    initFX(fxPanel); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    MUSIK.playIntro();

}

1 个答案:

答案 0 :(得分:2)

理解起来很简单。将所有组件都视为计算机的外围设备。在连接所有外围设备之前,您实际上是在打开计算机。

setVisible()完成向JFrame添加所有实体,以便在显示时,一切都完好无损。

请参阅"Why to use setVisible() below our code!"

因此,在设置框架可见之前,应调用组件的添加。

希望这可以解决问题