<?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_by_API%2Fjavax.swing%2FSwingUtilities</id>
		<title>Java by API/javax.swing/SwingUtilities - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjavax.swing%2FSwingUtilities"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/SwingUtilities&amp;action=history"/>
		<updated>2026-04-19T12:02:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/SwingUtilities&amp;diff=774&amp;oldid=prev</id>
		<title> в 17:43, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/SwingUtilities&amp;diff=774&amp;oldid=prev"/>
				<updated>2010-05-31T17:43:48Z</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:43, 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_by_API/javax.swing/SwingUtilities&amp;diff=775&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/SwingUtilities&amp;diff=775&amp;oldid=prev"/>
				<updated>2010-05-31T14:21:06Z</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;== SwingUtilities: convertPointFromScreen(Point p, Component c) ==&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;
  &lt;br /&gt;
    &lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    Point pt = new Point(component.getLocation());&lt;br /&gt;
    SwingUtilities.convertPointFromScreen(pt, component);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &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;
== SwingUtilities: convertPointToScreen(Point p, Component c) ==&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;
  &lt;br /&gt;
&lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
&lt;br /&gt;
    JButton component = new JButton();&lt;br /&gt;
    Point pt = new Point(component.getLocation());&lt;br /&gt;
    SwingUtilities.convertPointToScreen(pt, component);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &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;
== SwingUtilities: getRoot(Component c) ==&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;
  &lt;br /&gt;
 &lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&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.JFrame;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class Main extends JFrame {&lt;br /&gt;
  public Main() {&lt;br /&gt;
    this.setSize(400, 100);&lt;br /&gt;
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    this.setLayout(new FlowLayout(FlowLayout.CENTER));&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Change Frame Color&amp;quot;);&lt;br /&gt;
    button.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        Component component = (Component) e.getSource();&lt;br /&gt;
        JFrame frame = (JFrame) SwingUtilities.getRoot(component);&lt;br /&gt;
        frame.setBackground(Color.RED);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    this.getContentPane().add(button);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new Main().setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
   &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;
== SwingUtilities: getWindowAncestor(Component c) ==&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;
  &lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    JPanel panel = new JPanel();&lt;br /&gt;
    JDialog dialog = new JDialog((JFrame) SwingUtilities.getWindowAncestor(panel), true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &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;
== SwingUtilities: invokeAndWait(Runnable run) ==&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;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class MainClass extends JPanel {&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    try {&lt;br /&gt;
      SwingUtilities.invokeAndWait(new Runnable() {&lt;br /&gt;
        public void run() {&lt;br /&gt;
          JLabel jl = new JLabel(new MyIcon(), JLabel.CENTER);&lt;br /&gt;
          add(jl);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
    } catch (Exception exc) {&lt;br /&gt;
      System.out.println(&amp;quot;Can&amp;quot;t create because of &amp;quot; + exc);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.getContentPane().add(new MainClass());&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    frame.setSize(200, 200);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &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;
== SwingUtilities.invokeLater(Runnable doRun) ==&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;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Container;&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.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class InvokeExample {&lt;br /&gt;
  private static JButton good = new JButton(&amp;quot;Good&amp;quot;);&lt;br /&gt;
  private static JButton bad = new JButton(&amp;quot;Bad&amp;quot;);&lt;br /&gt;
  private static JButton bad2 = new JButton(&amp;quot;Bad2&amp;quot;);&lt;br /&gt;
  private static JLabel resultLabel = new JLabel(&amp;quot;Ready&amp;quot;, JLabel.CENTER);&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JPanel p = new JPanel();&lt;br /&gt;
    p.add(good);&lt;br /&gt;
    p.add(bad);&lt;br /&gt;
    p.add(bad2);&lt;br /&gt;
    Container c = f.getContentPane();&lt;br /&gt;
    c.setLayout(new BorderLayout());&lt;br /&gt;
    c.add(p, BorderLayout.CENTER);&lt;br /&gt;
    c.add(resultLabel, BorderLayout.SOUTH);&lt;br /&gt;
    good.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ev) {&lt;br /&gt;
        resultLabel.setText(&amp;quot;Working . . .&amp;quot;);&lt;br /&gt;
        setEnabled(false);&lt;br /&gt;
        Thread worker = new Thread() {&lt;br /&gt;
          public void run() {&lt;br /&gt;
            try {&lt;br /&gt;
              Thread.sleep(5000);&lt;br /&gt;
            } catch (InterruptedException ex) {&lt;br /&gt;
            }&lt;br /&gt;
            SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
              public void run() {&lt;br /&gt;
                resultLabel.setText(&amp;quot;Ready&amp;quot;);&lt;br /&gt;
                setEnabled(true);&lt;br /&gt;
              }&lt;br /&gt;
            });&lt;br /&gt;
          }&lt;br /&gt;
        };&lt;br /&gt;
        worker.start();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    bad.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ev) {&lt;br /&gt;
        resultLabel.setText(&amp;quot;Working . . .&amp;quot;);&lt;br /&gt;
        setEnabled(false);&lt;br /&gt;
        try {&lt;br /&gt;
          Thread.sleep(5000);&lt;br /&gt;
        } catch (InterruptedException ex) {&lt;br /&gt;
        }&lt;br /&gt;
        resultLabel.setText(&amp;quot;Ready&amp;quot;);&lt;br /&gt;
        setEnabled(true);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    bad2.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ev) {&lt;br /&gt;
        resultLabel.setText(&amp;quot;Working . . . &amp;quot;);&lt;br /&gt;
        setEnabled(false);&lt;br /&gt;
        SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
          public void run() {&lt;br /&gt;
            try {&lt;br /&gt;
              Thread.sleep(5000); // Dispatch thread is starving!&lt;br /&gt;
            } catch (InterruptedException ex) {&lt;br /&gt;
            }&lt;br /&gt;
            resultLabel.setText(&amp;quot;Ready&amp;quot;);&lt;br /&gt;
            setEnabled(true);&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    f.setSize(300, 100);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  // Allows us to turn the buttons on or off while we work.&lt;br /&gt;
  static void setEnabled(boolean b) {&lt;br /&gt;
    good.setEnabled(b);&lt;br /&gt;
    bad.setEnabled(b);&lt;br /&gt;
    bad2.setEnabled(b);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &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;
== SwingUtilities.isEventDispatchThread() ==&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;
  &lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2007, Romain Guy&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   * Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *   * Redistributions in binary form must reproduce the above&lt;br /&gt;
 *     copyright notice, this list of conditions and the following&lt;br /&gt;
 *     disclaimer in the documentation and/or other materials provided&lt;br /&gt;
 *     with the distribution.&lt;br /&gt;
 *   * Neither the name of the TimingFramework project nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT&lt;br /&gt;
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,&lt;br /&gt;
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE&lt;br /&gt;
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import javax.swing.*;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * @author Romain Guy&lt;br /&gt;
 */&lt;br /&gt;
public class SafeRepaint extends JFrame {&lt;br /&gt;
    private SafeComponent safeComponent;&lt;br /&gt;
    public SafeRepaint() {&lt;br /&gt;
        super(&amp;quot;Safe Repaint&amp;quot;);&lt;br /&gt;
        safeComponent = new SafeComponent();&lt;br /&gt;
        add(safeComponent);&lt;br /&gt;
        pack();&lt;br /&gt;
        setLocationRelativeTo(null);&lt;br /&gt;
        setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;
        new Thread(new Runnable() {&lt;br /&gt;
            public void run() {&lt;br /&gt;
                while (true) {&lt;br /&gt;
                    safeComponent.repaint();&lt;br /&gt;
                    try {&lt;br /&gt;
                        Thread.sleep(1000);&lt;br /&gt;
                    } catch (InterruptedException e) {&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }).start();&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
            public void run() {&lt;br /&gt;
                SafeRepaint repaint = new SafeRepaint();&lt;br /&gt;
                repaint.setVisible(true);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2007, Romain Guy&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   * Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *   * Redistributions in binary form must reproduce the above&lt;br /&gt;
 *     copyright notice, this list of conditions and the following&lt;br /&gt;
 *     disclaimer in the documentation and/or other materials provided&lt;br /&gt;
 *     with the distribution.&lt;br /&gt;
 *   * Neither the name of the TimingFramework project nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT&lt;br /&gt;
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,&lt;br /&gt;
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE&lt;br /&gt;
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * @author Romain Guy&lt;br /&gt;
 */&lt;br /&gt;
class SafeComponent extends JLabel {&lt;br /&gt;
    public SafeComponent() {&lt;br /&gt;
        super(&amp;quot;Safe Repaint&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public void paintComponent(Graphics g) {&lt;br /&gt;
        super.paintComponent(g);&lt;br /&gt;
        System.out.println(SwingUtilities.isEventDispatchThread());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &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;
== SwingUtilities.isLeftMouseButton(MouseEvent mouseEvent) ==&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;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Button Sample&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Select Me&amp;quot;);&lt;br /&gt;
    ActionListener actionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        System.out.println(&amp;quot;I was selected.&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    MouseListener mouseListener = new MouseAdapter() {&lt;br /&gt;
      public void mousePressed(MouseEvent mouseEvent) {&lt;br /&gt;
        int modifiers = mouseEvent.getModifiers();&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Left button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Middle button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Right button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseReleased(MouseEvent mouseEvent) {&lt;br /&gt;
        if (SwingUtilities.isLeftMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Left button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Middle button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if (SwingUtilities.isRightMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Right button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    button.addActionListener(actionListener);&lt;br /&gt;
    button.addMouseListener(mouseListener);&lt;br /&gt;
    frame.add(button, BorderLayout.SOUTH);&lt;br /&gt;
    frame.setSize(300, 100);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &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;
== SwingUtilities.isMiddleMouseButton(MouseEvent mouseEvent) ==&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;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Button Sample&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Select Me&amp;quot;);&lt;br /&gt;
    ActionListener actionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        System.out.println(&amp;quot;I was selected.&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    MouseListener mouseListener = new MouseAdapter() {&lt;br /&gt;
      public void mousePressed(MouseEvent mouseEvent) {&lt;br /&gt;
        int modifiers = mouseEvent.getModifiers();&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Left button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Middle button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Right button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseReleased(MouseEvent mouseEvent) {&lt;br /&gt;
        if (SwingUtilities.isLeftMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Left button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Middle button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if (SwingUtilities.isRightMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Right button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    button.addActionListener(actionListener);&lt;br /&gt;
    button.addMouseListener(mouseListener);&lt;br /&gt;
    frame.add(button, BorderLayout.SOUTH);&lt;br /&gt;
    frame.setSize(300, 100);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &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;
== SwingUtilities.isRightMouseButton(MouseEvent mouseEvent) ==&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;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Button Sample&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JButton button = new JButton(&amp;quot;Select Me&amp;quot;);&lt;br /&gt;
    ActionListener actionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        System.out.println(&amp;quot;I was selected.&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    MouseListener mouseListener = new MouseAdapter() {&lt;br /&gt;
      public void mousePressed(MouseEvent mouseEvent) {&lt;br /&gt;
        int modifiers = mouseEvent.getModifiers();&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Left button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Middle button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((modifiers &amp;amp; InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {&lt;br /&gt;
          System.out.println(&amp;quot;Right button pressed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseReleased(MouseEvent mouseEvent) {&lt;br /&gt;
        if (SwingUtilities.isLeftMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Left button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Middle button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if (SwingUtilities.isRightMouseButton(mouseEvent)) {&lt;br /&gt;
          System.out.println(&amp;quot;Right button released.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    button.addActionListener(actionListener);&lt;br /&gt;
    button.addMouseListener(mouseListener);&lt;br /&gt;
    frame.add(button, BorderLayout.SOUTH);&lt;br /&gt;
    frame.setSize(300, 100);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &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;
== SwingUtilities: updateComponentTreeUI(Component c) ==&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;
  &lt;br /&gt;
import java.awt.Container;&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.ButtonGroup;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
import javax.swing.JRadioButton;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  protected JFrame theFrame = new JFrame(&amp;quot;LNF Switcher&amp;quot;);&lt;br /&gt;
  protected Container cp;&lt;br /&gt;
  protected String curLF = &amp;quot;javax.swing.plaf.metal.MetalLookAndFeel&amp;quot;;&lt;br /&gt;
  protected JRadioButton previousButton;&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    theFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    cp = theFrame.getContentPane();&lt;br /&gt;
    cp.setLayout(new FlowLayout());&lt;br /&gt;
    ButtonGroup bg = new ButtonGroup();&lt;br /&gt;
    JRadioButton bJava = new JRadioButton(&amp;quot;Java&amp;quot;);&lt;br /&gt;
    bJava.addActionListener(new LNFSetter(&amp;quot;javax.swing.plaf.metal.MetalLookAndFeel&amp;quot;, bJava));&lt;br /&gt;
    bg.add(bJava);&lt;br /&gt;
    cp.add(bJava);&lt;br /&gt;
    JRadioButton bMSW = new JRadioButton(&amp;quot;MS-Windows&amp;quot;);&lt;br /&gt;
    bMSW.addActionListener(new LNFSetter(&amp;quot;com.sun.java.swing.plaf.windows.WindowsLookAndFeel&amp;quot;, bMSW));&lt;br /&gt;
    bg.add(bMSW);&lt;br /&gt;
    cp.add(bMSW);&lt;br /&gt;
    JRadioButton bMotif = new JRadioButton(&amp;quot;Motif&amp;quot;);&lt;br /&gt;
    bMotif.addActionListener(new LNFSetter(&amp;quot;com.sun.java.swing.plaf.motif.MotifLookAndFeel&amp;quot;, bMotif));&lt;br /&gt;
    bg.add(bMotif);&lt;br /&gt;
    cp.add(bMotif);&lt;br /&gt;
    JRadioButton bMac = new JRadioButton(&amp;quot;Sun-MacOS&amp;quot;);&lt;br /&gt;
    bMac.addActionListener(new LNFSetter(&amp;quot;com.sun.java.swing.plaf.mac.MacLookAndFeel&amp;quot;, bMac));&lt;br /&gt;
    bg.add(bMac);&lt;br /&gt;
    cp.add(bMac);&lt;br /&gt;
    String defaultLookAndFeel = UIManager.getSystemLookAndFeelClassName();&lt;br /&gt;
    JRadioButton bDefault = new JRadioButton(&amp;quot;Default&amp;quot;);&lt;br /&gt;
    bDefault.addActionListener(new LNFSetter(defaultLookAndFeel, bDefault));&lt;br /&gt;
    bg.add(bDefault);&lt;br /&gt;
    cp.add(bDefault);&lt;br /&gt;
    (previousButton = bDefault).setSelected(true);&lt;br /&gt;
    theFrame.pack();&lt;br /&gt;
    theFrame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  class LNFSetter implements ActionListener {&lt;br /&gt;
    String theLNFName;&lt;br /&gt;
    JRadioButton thisButton;&lt;br /&gt;
    LNFSetter(String lnfName, JRadioButton me) {&lt;br /&gt;
      theLNFName = lnfName;&lt;br /&gt;
      thisButton = me;&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent e) {&lt;br /&gt;
      try {&lt;br /&gt;
        UIManager.setLookAndFeel(theLNFName);&lt;br /&gt;
        SwingUtilities.updateComponentTreeUI(theFrame);&lt;br /&gt;
        theFrame.pack();&lt;br /&gt;
      } catch (Exception evt) {&lt;br /&gt;
        JOptionPane.showMessageDialog(null, &amp;quot;setLookAndFeel didn&amp;quot;t work: &amp;quot; + evt, &amp;quot;UI Failure&amp;quot;,&lt;br /&gt;
            JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;
        previousButton.setSelected(true); // reset the GUI to agree&lt;br /&gt;
      }&lt;br /&gt;
      previousButton = thisButton;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    new MainClass();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &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>