이 SWTException을 제거하려고 시도했습니다. 잘못된 스레드 액세스입니다. JButton ActionListener 내에서 생성됩니다. 궁극적 인 목적은 ...잘못된 스레드 액세스 : AWT의 SWT ActionListener
private static final Display display = Display.getDefault();
// Fired from JButton:
class ShowBrowserAction implements java.awt.event.ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// Place-holder UI Update...
display.asyncExec(new Runnable() {
public void run() {
System.out.println("Async task run");
}
});
// Blocking until UI element is done...
while (!display.isDisposed()) {
// Always gives a thread access error, but still calls async event:
if (!display.readAndDispatch() )
display.sleep();
}
}
}
생각을, 버튼을 이용하여 브라우저 창을 엽니 다 가지고있는 URL로 이동 한 후 URL을 열기 대화 상자로 다시 데려?
나는 try/catch로 readAndDispatch를 감싸고 실제로 완벽하게 잘 보이는 것처럼 보일 수 있습니다. 그러나 그건 바람 피는 것처럼 보이고 나중에 나를 다시 붙잡을 것이라고 생각하고있다. –
Display 인스턴스를 Display.getDefault() 대신 새 Display()로 변경하면 오류가 사라지는 것으로 보입니다. 그러나 나는 그것이 왜 그렇게 될지 이해하지 못한다. Display.getCurrent()는 "null"을 반환하므로 활성 스레드는 현재 스레드에 이미 존재합니다 ...? –