1
我有一個java gui的問題,並打開一個文件。我的問題是完整的GUI掛起,直到該文件是開放的,但我已經擰的動作......gui甚至掛着線程
我有這樣的動作監聽:
this.EditButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
String path = (String)DocumentsTable.getValueAt(DocumentsTable.getSelectedRow(), 2);
openDocument(path);
System.out.println("foo");
}
});
對其執行動作剛剛打開給定的路徑
private void openDocument(final String path){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try{
Desktop.getDesktop().open(new File(path));
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Das Dokument konnte nicht geöffnet werden...\n"+e.toString());
e.printStackTrace();
}
}
});
}
如果我跑我的節目,我立刻看到控制檯上的「富」,但GUI完全地掛斷和按鈕處於按下狀態... 有沒有人有一個想法,我做錯了什麼?我的其他動作偵聽器的工作原理是相同的,我沒有問題...
爲簡單起見,EDT ==事件分派線程== gui線程 – Ishtar 2010-09-13 09:47:21
謝謝,它工作:)我應該將所有invokeLater更改爲SwingWorkers ... – reox 2010-09-13 09:55:17