gpt4 book ai didi

java - 即使有线程,gui 也会挂起

转载 作者:行者123 更新时间:2023-11-30 05:10:09 25 4
gpt4 key购买 nike

我在使用 java gui 和打开文档时遇到问题。我的问题是整个 gui 挂起,直到文档打开,但我已经线程化了该操作...

我有这个 Action 监听器:

    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();
}
}
});
}

如果我运行我的程序,我会立即在控制台上看到“foo”,但 gui 完全挂起并且按钮处于按下状态......有谁知道我做错了什么?我的其他 Action 监听器的工作原理相同,并且我没有遇到问题...

最佳答案

SwingUtilities.invokeLater() 安排可运行对象在 EDT 上运行,如 javadoc 中所述。也许您应该使用 SwingWorker 来打开文档?

关于java - 即使有线程,gui 也会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3699195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com