SwingUtilitiesのinvokeAndWaitメソッドのサンプル。Swingではイベントの投入やGUI描画に影響する値の設定は直接するのではなく、invokeAndWaitメソッドやinvokeLaterメソッドで行います。
package org.sssg.soft.sample.swingutil;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class Sample extends JFrame{ public Sample() { super ("Sample" ); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100 ,100 ,200 ,100 ); setVisible(true ); } public void createThread() { Thread thread = new Thread() { public void run() { try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { System.out.println( "This method call by event dispatch thread" + Thread.currentThread()); } }); } catch (Exception e) { e.printStackTrace(); } System.out.println("This method call by thread. " + Thread.currentThread()); } }; thread.start(); }
public static void main(String[] args) { Sample s = new Sample(); s.createThread(); } }
|