0
我試圖用JFrame和JPanel創建一個「gif」,我有一個循環「gif」的問題。 這是做了「GIF」的部分代碼:如何把相同的JLabel兩次
JFrame mainFrame = new JFrame("main");
mainFrame.setSize(newWidth, newHeight);
mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
for (int i = 0; i < labels.length; i++) {
mainFrame.add(labels[i]);
mainFrame.setVisible(true);
TimeUnit.SECONDS.sleep(delay);
mainFrame.remove(labels[i]);
}
它只運行一次,但是當我調試它表明,它一直運行
也許我有糟糕的一天,但不明白 –
標題和問題似乎完全無關。另外,爲什麼這個運行不止一次?循環運行一次,並在它添加並刪除它終止的所有標籤之後運行。 如果您希望它無限期運行,請使用while(true){}或更好的while(notTerminated){}環繞循環,以便您可以將notTerminated設置爲false,例如通過點擊一個按鈕... – tringel
首先,你不能在Swing應用中使用'sleep()'。如果你想提供延遲,你應該使用'javax.swing.Tmer'。有關更多信息,請參閱[此處](https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html)。其次:不能將一個Swing組件放置兩次。如果第二次添加Swing組件,它將從第一次添加Swing組件的位置移除。如果您仍然需要幫助,請提供一個可運行的示例([SSCCE](http://sscce.org)),因此我們也可以重現您的問題並調試解決方案。 –