public static JobMonitor runInSeparateWindow() { final JobMonitor monitor = new JobMonitor(); JFrame dialog = new JFrame("Job Monitor"); monitor.dialog = dialog; dialog.setLayout(new java.awt.BorderLayout()); dialog.getContentPane().add(monitor, java.awt.BorderLayout.CENTER); dialog.addWindowListener( new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { if (monitor.sw != null) { monitor.sw.cancel(true); } } }); dialog.pack(); dialog.setVisible(true); dialog.toFront(); return monitor; }