[J2SE] 請教swing的即時更新

看板java作者 (某Ken)時間17年前 (2008/04/12 18:58), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串1/1
我的程式中有一個textArea、一個Button 然後我在Button上加ActionListener,讓迴圈不斷的對textArea append文字內容 我的預想是希望能夠在我執行迴圈時每次append就即時的在螢幕上更新結果 但是實際上執行會是,在整個actionPerformed method執行完之後畫面才獲得更新 想請教是否有class或是Thread的使用,能答到我的目標@@? -- 我有嘗試使用一個runnable class,然後用time class排程 每固定時間就call textArea 的repaint() 但是無效,囧rz... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.1.122

04/12 19:32, , 1F
SwingUtilities.invokeLater(Runnable doRun)
04/12 19:32, 1F
我在java.sun.com上找到了這樣的一個範例程式 http://0rz.tw/8f3Sp 其中有段是 public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Flipper(); } }); } 而Flipper同時繼承JFrame和實做ActionListener,也含有inner class 那麼如果我的程式是拆開來的 class gui{ public gui() { swing介面初始化 obj obj = new obj(); } innerclass implements actionlistioner{ public void actionperformed(){ obj.start(); } } innerclass obj{ public void start(){ 這裡才真正去對textArea append } } } run裡面到底應該放整個GUI、還是Listener、 還是應該是我呼叫append的那個物件呢@"@....? ※ 編輯: kevin814 來自: 61.230.1.122 (04/12 21:57)

04/12 22:13, , 2F
run 裡面放你要做的事。
04/12 22:13, 2F
文章代碼(AID): #1809N3pQ (java)