2015-04-18 61 views
0

所以在下面的代碼中,在SetVisible(true)之前放置frame.add(OpeningSplash)可以正常工作(即顯示圖像),但將它放在後面不會。我將如何解決這個問題?爲什麼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(); 

} 
+1

''String Args []''O_o。你需要在最後一行放置''frame.setVisible(true)''。 – Aero

+0

等待,但是在整個遊戲完成之前,框架不會被隱藏嗎? (遊戲將放在playIntro所在的位置) – danishanish

+0

另外,String Args []有什麼問題?我是新的 – danishanish

回答

2

這很容易理解。將所有組件視爲您計算機的外圍設備。在連接所有外圍設備之前,您基本上都要開啓計算機。

setVisible()完成將所有實體添加到JFrame,以便在顯示時,一切都完好無損。

參考"Why to use setVisible() below our code!"

所以,你應該設置框架可見之前調用您組件的添加。

希望這會清理東西

+1

正確或使用重繪,無效或類似的東西。如果在setVisible之後添加組件。 – maraca

+0

是的,這也能工作! – TejjD

+0

如果我協助或指出您的方向正確,請標記正確。 – TejjD

相關問題