Swing Utilities getWindowAncestor
/*
Code from Desktop Java Live Source
URL: http://www.sourcebeat.com/downloads/
*/
import javax.swing.*;
import java.awt.event.ActionEvent;
public class DialogBlockingExample {
public static JPanel createPanel() {
JPanel panel = new JPanel();
JButton button = new JButton(new DialogAction(panel));
panel.add(button);
return panel;
}
private static class DialogAction extends AbstractAction {
private JPanel panel;
public DialogAction(JPanel panel) {
super("Open Dialog");
this.panel = panel;
}
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog((JFrame) SwingUtilities.getWindowAncestor(panel), true);
dialog.getContentPane().add(new JLabel("A Dialog"));
dialog.setVisible(true);
putValue(Action.NAME, "Dialog Already Shown");
}
}
public static void main(String[] a){
JFrame f = new JFrame();
f.setDefaultCloseOperation(1);
f.add(createPanel());
f.pack();
f.setVisible(true);
}
}
Related examples in the same category