!Swingとスレッド Swingに関する処理はSwingのイベント・ディスパッチ・スレッドで 実行しなくてはならない。 で、このイベントディスパッチスレッドをmainスレッドとは別にするために、 GUIを構築するコードをmainスレッドから直接呼び出すのではなく、 public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new MySwingApp(); } }); } とか、invokeLaterを使って呼び出すようにするべきのよう。 こうするとmainスレッドとは別にイベント・ディスパッチ・スレッドが 生成されることになる。 Swing使ったソフトで何やら挙動不審な動作をしていたのは、 Swingのスレッドまわりの勉強不足によっていたのかなぁ。 気づいたものから置き換えていこう。 http://java.sun.com/docs/books/tutorial/uiswing/components/examples/index.html#ScrollDemo http://itpro.nikkeibp.co.jp/article/COLUMN/20070413/268205/ http://www.pc-view.net/article/162/2.html !CSTコンペ http://www.ieice.org/~cst/compe07/ マルチカーエレベーターの最適制御。 面白そう。