<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FModality</id>
		<title>Java Tutorial/Swing/Modality - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FModality"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Modality&amp;action=history"/>
		<updated>2026-04-21T20:33:20Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Modality&amp;diff=3967&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Modality&amp;diff=3967&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Modality&amp;diff=3968&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Modality&amp;diff=3968&amp;oldid=prev"/>
				<updated>2010-05-31T15:33:36Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Demonstrating Modality Types ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.*;&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.awt.event.*;&lt;br /&gt;
public class DualModal {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    final JFrame frame1 = new JFrame(&amp;quot;Left&amp;quot;);&lt;br /&gt;
    final JFrame frame2 = new JFrame(&amp;quot;Right&amp;quot;);&lt;br /&gt;
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JButton button1 = new JButton(&amp;quot;Left&amp;quot;);&lt;br /&gt;
    JButton button2 = new JButton(&amp;quot;Right&amp;quot;);&lt;br /&gt;
    frame1.add(button1);&lt;br /&gt;
    frame2.add(button2);&lt;br /&gt;
    ActionListener listener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        JButton source = (JButton) e.getSource();&lt;br /&gt;
        JOptionPane pane = new JOptionPane(&amp;quot;New label&amp;quot;, JOptionPane.QUESTION_MESSAGE);&lt;br /&gt;
        pane.setWantsInput(true);&lt;br /&gt;
        JDialog dialog = pane.createDialog(frame2, &amp;quot;Enter Text&amp;quot;);&lt;br /&gt;
        // dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);&lt;br /&gt;
        dialog.setModalityType(Dialog.ModalityType.DOCUMENT_MODAL);&lt;br /&gt;
        dialog.setVisible(true);&lt;br /&gt;
        String text =  (String) pane.getInputValue();&lt;br /&gt;
       &lt;br /&gt;
        if (!JOptionPane.UNINITIALIZED_VALUE.equals(text) &amp;amp;&amp;amp; text.trim().length() &amp;gt; 0) {&lt;br /&gt;
          source.setText(text);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    button1.addActionListener(listener);&lt;br /&gt;
    button2.addActionListener(listener);&lt;br /&gt;
    frame1.setBounds(100, 100, 200, 200);&lt;br /&gt;
    frame1.setVisible(true);&lt;br /&gt;
    frame2.setBounds(400, 100, 200, 200);&lt;br /&gt;
    frame2.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Dialog.ModalityType.DOCUMENT_MODAL ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Dialog;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class DocumentModalDialogDemo {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final JFrame parent = new JFrame(&amp;quot;Parent Frame&amp;quot;);&lt;br /&gt;
    parent.setLayout(new FlowLayout());&lt;br /&gt;
    parent.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    parent.setBounds(100, 100, 300, 200);&lt;br /&gt;
    parent.setVisible(true);&lt;br /&gt;
    JDialog dialog1 = new JDialog(parent, &amp;quot;Dialog1 - Modeless Dialog&amp;quot;);&lt;br /&gt;
    dialog1.setBounds(200, 200, 300, 200);&lt;br /&gt;
    dialog1.setVisible(true);&lt;br /&gt;
    JDialog dialog2 = new JDialog(parent, &amp;quot;Dialog2 - Document-Modal Dialog&amp;quot;,&lt;br /&gt;
        Dialog.ModalityType.DOCUMENT_MODAL);&lt;br /&gt;
    dialog2.setBounds(300, 300, 300, 200);&lt;br /&gt;
    JDialog dialog3 = new JDialog(dialog2, &amp;quot;Dialog3 - Modeless Dialog&amp;quot;);&lt;br /&gt;
    dialog3.setBounds(400, 400, 300, 200);&lt;br /&gt;
    dialog3.setVisible(true);&lt;br /&gt;
    dialog2.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Four new AWT modality models introduced with the Java Mustang release. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modal TypeDescriptionMode-lessDoes not block any other window while it&amp;quot;s rendered on the user display.Document-modalBlocks all windows from the same document with the exception of those windows from its child hierarchy.Application-modalBlocks all windows from the same application with the exception of those windows from its child hierarchy.Toolkit-modalBlocks all windows from the same toolkit with the exception of those toolkits from its child hierarchy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Improved Dialog Modality ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Mustang introduces different types of modality, in which you no longer use setModal but the new method setModalityType in the Dialog class to make a dialog modal.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Dialog.ModalityType is an enum in the java.awt package.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its values are as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;APPLICATION_MODAL. Blocks all windows in the same application except those with the modal dialog as their owner.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;DOCUMENT_MODAL. Makes all windows from the same document inaccessible, except those from the modal dialog&amp;quot;s child hierarchy.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;MODELESS. Does not block any other windows.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;TOOLKIT_MODAL. Makes all windows from the same toolkit inaccessible, except those from the modal dialog&amp;quot;s child hierarchy.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Dialog;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class ApplicationModalDialogDemo {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final JFrame parent1 = new JFrame(&amp;quot;Parent Frame 1&amp;quot;);&lt;br /&gt;
    parent1.setLayout(new FlowLayout());&lt;br /&gt;
    parent1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Application modal dialog&amp;quot;);&lt;br /&gt;
    button.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        JDialog dialog = new JDialog(parent1, &amp;quot;Application-Modal Dialog&amp;quot;,&lt;br /&gt;
            Dialog.ModalityType.APPLICATION_MODAL);&lt;br /&gt;
        dialog.setBounds(200, 150, 200, 150);&lt;br /&gt;
        dialog.setVisible(true);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    parent1.add(button);&lt;br /&gt;
    parent1.setBounds(100, 100, 200, 150);&lt;br /&gt;
    parent1.setVisible(true);&lt;br /&gt;
    JFrame parent2 = new JFrame(&amp;quot;Parent Frame 2&amp;quot;);&lt;br /&gt;
    parent2.setBounds(500, 100, 200, 150);&lt;br /&gt;
    parent2.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Modeless Dialog ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Dialog;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class DocumentModalDialogDemo {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final JFrame parent = new JFrame(&amp;quot;Parent Frame&amp;quot;);&lt;br /&gt;
    parent.setLayout(new FlowLayout());&lt;br /&gt;
    parent.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    parent.setBounds(100, 100, 300, 200);&lt;br /&gt;
    parent.setVisible(true);&lt;br /&gt;
    JDialog dialog1 = new JDialog(parent, &amp;quot;Dialog1 - Modeless Dialog&amp;quot;);&lt;br /&gt;
    dialog1.setBounds(200, 200, 300, 200);&lt;br /&gt;
    dialog1.setVisible(true);&lt;br /&gt;
    JDialog dialog2 = new JDialog(parent, &amp;quot;Dialog2 - Document-Modal Dialog&amp;quot;,&lt;br /&gt;
        Dialog.ModalityType.DOCUMENT_MODAL);&lt;br /&gt;
    dialog2.setBounds(300, 300, 300, 200);&lt;br /&gt;
    JDialog dialog3 = new JDialog(dialog2, &amp;quot;Dialog3 - Modeless Dialog&amp;quot;);&lt;br /&gt;
    dialog3.setBounds(400, 400, 300, 200);&lt;br /&gt;
    dialog3.setVisible(true);&lt;br /&gt;
    dialog2.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using modality exclusion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Dialog;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class ApplicationModalDialogWithExcludeDemo {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final JFrame parent1 = new JFrame(&amp;quot;Parent Frame 1&amp;quot;);&lt;br /&gt;
    parent1.setLayout(new FlowLayout());&lt;br /&gt;
    parent1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    parent1.setBounds(100, 100, 200, 150);&lt;br /&gt;
    parent1.setVisible(true);&lt;br /&gt;
    JFrame parent2 = new JFrame(&amp;quot;Parent Frame 2&amp;quot;);&lt;br /&gt;
    parent2.setBounds(500, 100, 300, 150);&lt;br /&gt;
    parent2.setVisible(true);&lt;br /&gt;
    JFrame parent3 = new JFrame(&amp;quot;Parent Frame 3 - Excluded&amp;quot;);&lt;br /&gt;
    parent3.setBounds(300, 400, 300, 150);&lt;br /&gt;
    parent3.setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE);&lt;br /&gt;
    parent3.setVisible(true);&lt;br /&gt;
    JDialog dialog = new JDialog(parent1, &amp;quot;Application-Modal Dialog&amp;quot;,&lt;br /&gt;
        Dialog.ModalityType.APPLICATION_MODAL);&lt;br /&gt;
    dialog.setBounds(300, 200, 300, 150);&lt;br /&gt;
    dialog.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>