Demonstrating Modality Types : Modality « Swing « Java Tutorial






import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class DualModal {
  public static void main(String args[]) {
    final JFrame frame1 = new JFrame("Left");
    final JFrame frame2 = new JFrame("Right");
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JButton button1 = new JButton("Left");
    JButton button2 = new JButton("Right");
    frame1.add(button1);
    frame2.add(button2);
    ActionListener listener = new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        JButton source = (JButton) e.getSource();

        JOptionPane pane = new JOptionPane("New label", JOptionPane.QUESTION_MESSAGE);
        pane.setWantsInput(true);
        JDialog dialog = pane.createDialog(frame2, "Enter Text");
        // dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
        dialog.setModalityType(Dialog.ModalityType.DOCUMENT_MODAL);
        dialog.setVisible(true);
        String text =  (String) pane.getInputValue();

       
        if (!JOptionPane.UNINITIALIZED_VALUE.equals(text) && text.trim().length() > 0) {
          source.setText(text);
        }
      }
    };
    button1.addActionListener(listener);
    button2.addActionListener(listener);
    frame1.setBounds(100, 100, 200, 200);
    frame1.setVisible(true);
    frame2.setBounds(400, 100, 200, 200);
    frame2.setVisible(true);
  }
}








14.75.Modality
14.75.1.Four new AWT modality models introduced with the Java Mustang release.
14.75.2.Improved Dialog Modality
14.75.3.Dialog.ModalityType.DOCUMENT_MODAL
14.75.4.Modeless Dialog
14.75.5.Using modality exclusion
14.75.6.Demonstrating Modality Types