所以我試圖設置一個應用程序,其中我有一個jframe內的多個面板。可以說其中3個純粹用於顯示目的,其中一個用於控制目的。我使用的是borderLayout,但我不認爲佈局應該真的影響這裏的東西。我想要的三個顯示面板的重新繪製在控制面板中的按鈕的控制下,並且我希望它們在按下控制面板上的按鈕時都同步執行。要做到這一點,我成立了這個小方法:從單個「控制」面板重新繪製多個JPanel
public void update(){
while(ButtonIsOn){
a.repaint();
b.repaint()
c.repaint();
System.out.println("a,b, and c should have repainted");
}
}
其中a,b和c都顯示面板,我想A,B和C的所有重繪汽車無,直到我再次按下按鈕。問題是,當我執行循環時,消息在無限循環中打印,但是沒有任何面板執行任何操作,即它們都不重繪。
我一直在閱讀關於事件調度線程和swing多線程,但我迄今發現的東西都沒有真正解決我的問題。有人能告訴我我在這裏做錯了什麼,或者甚至更好,處理我描述的情況的一些示例代碼?謝謝...
*一個很好的教程*爲了更好地幫助越早,張貼[SSCCE(HTTP「..來處理我所描述的情況的一些示例代碼?」:// SSCCE。組織/)。 – 2012-04-09 08:21:16
請學習java命名約定並堅持使用它們。 – kleopatra 2012-04-09 09:06:22
究竟是什麼問題(除了你的無限循環,由不重置控制while的布爾值引起)?該面板的_none究竟做了什麼,即沒有一個repaint_ manifest? – kleopatra 2012-04-09 09:07:40