退出含有ChartDirector的SWT程序,JVM没有关闭

By | 2018年5月1日

ChartDirectory是显示在AWT里面的,它的example中使用WindowListener强制结束JVM,否则的话JVM依然在运行。

//Create and set up the main window
JFrame frame = new JFrame(demo.toString());
frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {System.exit(0);
  }
});

要显示在SWT里面,就要需要转接器。

Frame frame = SWT_AWT.new_Frame(plotComp);

此时给SWT控件或AWT控件添加listener,关闭JVM是不顶用的,需要在Display dispose时,关闭JVM。

1. Display释放后关闭JVM

display.dispose();
System.exit(0);

2. 给Display添加dispose listener

Display.getDefault().addListener(SWT.Dispose, evt -> System.exit(0));