< prev index next >
agent/src/share/classes/sun/jvm/hotspot/HSDB.java
Print this page
@@ -123,16 +123,20 @@
System.out.println("HSDB Error: Too many options specified");
doUsage();
}
}
- // close this tool without calling System.exit
- protected void closeUI() {
+ private class CloseUI extends WindowAdapter {
+
+ @Override
+ public void windowClosing(WindowEvent e) {
workerThread.shutdown();
frame.dispose();
}
+ }
+
public void run() {
// Don't start the UI if there were bad arguments.
if (argError) {
return;
}
@@ -142,11 +146,12 @@
attachMenuItems = new java.util.ArrayList();
detachMenuItems = new java.util.ArrayList();
frame = new JFrame("HSDB - HotSpot Debugger");
frame.setSize(800, 600);
- frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+ frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
+ frame.addWindowListener(new CloseUI());
JMenuBar menuBar = new JMenuBar();
//
// File menu
@@ -205,11 +210,12 @@
menu.addSeparator();
item = createMenuItem("Exit",
new ActionListener() {
public void actionPerformed(ActionEvent e) {
- closeUI();
+ workerThread.shutdown();
+ frame.dispose();
}
});
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.ALT_MASK));
item.setMnemonic(KeyEvent.VK_X);
menu.add(item);
< prev index next >