GUI висит даже с резьбой - PullRequest
       15

GUI висит даже с резьбой

1 голос
/ 13 сентября 2010

У меня проблема с Java-интерфейсом и открытием документа.Моя проблема в том, что полный графический интерфейс пользователя зависает до тех пор, пока документ не будет открыт, но я уже проделал действие ...

У меня есть прослушиватель этого действия:

    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" на консоли, но графический интерфейс полностью зависает, и кнопка находится в нажатом состоянии ... У кого-нибудь есть идея, что я сделал не так??Мои другие слушатели действия работают так же, и у меня нет проблемы там ...

1 Ответ

2 голосов
/ 13 сентября 2010

SwingUtilities.invokeLater() планирует запуск в EDT, как указано в javadoc.Возможно, вам следует использовать SwingWorker, чтобы открыть документ?

...