2013-04-07 26 views
0

我建立具有不同按鈕的grpahic接口, 並且當用戶點擊一個按鈕我使用:的actionPerformed(ActionEvent的發送){

actionPerformed(ActionEvent e) { 
Object source = e.getSource(); 
if 
else if 
else if 
... 
} 

的問題是,當用戶點擊一個按鈕,actionPerformed(ActionEvent e)被稱爲,並進入if對應的e.getSource();。 它執行相應的if中的所有指令。但是我想讓用戶點擊不同的按鈕,這樣即使前面的actionPerformed(ActionEvent e) {的指令尚未完成,也會調用actionPerformed(ActionEvent e) {被調用。

我不知道你是否明白,但謝謝你,如果你能幫助我!

回答

5

如果您希望GUI在發生長時間運行的過程中響應,您將需要使用後臺線程。 SwingWorker在Swing GUI中適用於此。請查看Concurrency in Swing瞭解關於此的所有血淋淋的細節。

例子:

+0

什麼是後臺線程?你有沒有例子? – Natacha 2013-04-07 17:33:53

+0

@Natacha:是的,很多例子。請用我的名字和關鍵詞* SwingWorker *搜索這個網站,看看其中的一些。 – 2013-04-07 17:34:25

+0

我不知道如何搜索您的個人資料:/ – Natacha 2013-04-07 17:36:47

2

您需要使用SwingWorker。它可以在不凍結用戶界面的情況下完成後臺工作。

Here是你可以看看如何使用它們的問題。 或者你可以使用官方oracle documentationSwingWorker

相關問題