Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet337.java')
-rw-r--r--examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet337.java41
1 files changed, 34 insertions, 7 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet337.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet337.java
index 7941de36ba..357afaff54 100644
--- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet337.java
+++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet337.java
@@ -21,6 +21,8 @@ package org.eclipse.swt.snippets;
*/
import java.awt.*;
import java.awt.Canvas;
+import java.awt.event.*;
+import java.awt.event.WindowEvent;
import javax.swing.*;
@@ -32,12 +34,14 @@ import org.eclipse.swt.widgets.*;
public class Snippet337 {
-public static void main(String args[]) {
- final Display display = new Display();
+static Display display;
+public static void main(String args[]) {
+ display = new Display();
EventQueue.invokeLater(() -> {
JFrame mainFrame = new JFrame("Main Window");
- mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ mainFrame.addWindowListener(new Snippet337.CloseListener());
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new FlowLayout());
JButton launchBrowserButton = new JButton("Launch Browser");
@@ -60,19 +64,42 @@ public static void main(String args[]) {
mainPanel.add(new JTextField("a JTextField"));
mainPanel.add(launchBrowserButton);
- mainFrame.getContentPane().add(mainPanel, BorderLayout.CENTER);
+ mainFrame.getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);
mainFrame.pack();
mainFrame.setVisible(true);
});
display.addListener(SWT.Close, event -> EventQueue.invokeLater(() -> {
Frame[] frames = Frame.getFrames();
- for (int i = 0; i < frames.length; i++) {
- frames[i].dispose();
+ for (Frame frame : frames) {
+ frame.dispose();
}
}));
while (!display.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
}
-
+private static class CloseListener implements WindowListener {
+ @Override
+ public void windowClosed(WindowEvent e) {
+ display.asyncExec(() -> display.dispose());
+ }
+ @Override
+ public void windowOpened(WindowEvent e) {
+ }
+ @Override
+ public void windowClosing(WindowEvent e) {
+ }
+ @Override
+ public void windowIconified(WindowEvent e) {
+ }
+ @Override
+ public void windowDeiconified(WindowEvent e) {
+ }
+ @Override
+ public void windowActivated(WindowEvent e) {
+ }
+ @Override
+ public void windowDeactivated(WindowEvent e) {
+}
+}
}

Back to the top