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

Java 为什么setVisible()会删除我的组件?,java,swing,jframe,Java,Swing,Jframe,因此,在下面的代码中,将frame.add(OpeningSplash)放在SetVisible(true)之前可以正常工作(即显示图像),但将其放在SetVisible之后则不行。我该如何解决这个问题 public static void main (String Args[]){ JFrame frame = new JFrame("Swords & Sworcery"); frame.setSize(1920,1080); fr

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

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();

}

这很容易理解。将所有组件都视为计算机的外围设备。实际上,在连接所有外围设备之前,您需要先安装计算机

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

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


希望这能澄清问题

String Args[]
O\O。你需要把
frame.setVisible(true)
放在最后一行。等等,但是在整个游戏结束之前,这个框架不是一直不可见吗?(游戏将放在playIntro所在的位置)另外,字符串Args[]有什么问题?我是new@user3138314通常写为
String args[]
String…args
。i、 e.
camel-case
而不是
title-case
@user3138314:Java中唯一以大写字母开头的是类、接口和枚举。。。早期的常量,现在小写是正确的,或者使用重绘、无效或类似的方法。如果你在setVisible之后添加组件。如果我帮助你或为你指出了正确的方向,请标记为正确。