protected void do_button_actionPerformed(final ActionEvent e) {
new Thread() { // 開辟一個新的線程執行費時業務
public void run() {
for (int i = 0; i < 10; i++) { // 循環添加10個列表選項
Runnable runnable = new Runnable() { // 創建Runnable對象
public void run() { // 在run方法中操作Swing界面
listData.add("選項" + listData.size());
list.setListData(listData);
}
};
EventQueue.invokeLater(runnable); // 在事件隊列中執行Runnable對象
try {
Thread.sleep(1000); // 阻塞UI線程1秒
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
}.start(); // 啟動業務線程
}
新人請教,這段代碼裡有個new Thread();按照平時我們得讓類繼承Thread或者成為Runnable的借口才能創建線程類並重寫run方法 是不是只要在方法裡面就可以隨意創建了?順便問下try{}catch{}的捕獲方法向上跳出是什麼意思,就是顯示到esclipse下面那裡嗎?那有沒有捕獲有什麼差別呢?小白提問麻煩各位大大了
這個本身就是生成類對象的方法,只不過我們平時都是這樣的A a = new A();這個對象的名字叫做a,而你使用的直接new Thread()這是匿名內部類的使用,是沒有名字的(也就是沒有引用)然後後面還有.start(),這是直接使用生成的對象的方法,建議你去看一下匿名內部類的使用. 使用了try{}catch(){},這樣就是發生了異常,程序也不會崩潰,而會繼續執行catch(){}之後的內容,如果你不使用的話,當程序發生一次,程序就會崩潰