- - PR -
不確定進捗バーの使い方
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-31 11:26
初めて投稿いたします。SwingのJProgressBarを使った不確定進捗バーについて、どうしても意図通りに動かせないので、お知恵を拝借したいと思います。
やりたいことは、あるユーザイベントをトリガとして、不確定進捗バーのアニメーションが始まるようにすることです。下のサンプルプログラムだと、ウィンドウが開いた時点でアニメーションが始まってしまいます。これを、最初はアニメーションをしていない(バーだけが見えている)状態から、ボタンを押すとアニメーションが始まるようにしたいのです。 SwingUtilities.invokeLater()の中でsetIndeterminate()を呼び出す等、試してみたのですが、うまくいきません。原理的に無理(そもそもこのアニメーションのスレッドはイベントディスパッチスレッドから制御できない、とか)なら諦めますが、何か解決策がありそうなら、ご教示願えれば幸いです。おそらく同じようなことで悩んだ方がおられる可能性を期待しつつ。 -----
| ||||
|
投稿日時: 2005-08-31 11:49
13行目をコメントアウトすれば意図した動作になりませんか?
//jpb.setIndeterminate(true); /* 不確定進捗バーのアニメーション開始 */ | ||||
|
投稿日時: 2005-08-31 12:29
すみません、書き忘れていましたが、それだとボタンを押した時に、不確定進捗バーの見栄え(Mac OS Xの場合、青と白の斜め縞模様)にはなるのですが、アニメーション(Mac OS Xの場合、床屋のサインポール状態)にならないのです。13行目を入れておくと、最初に起動した時点からアミメーションが始まっていて、ボタンを押すたびにそれが停止/再開します。 これも書き忘れていましたが、こちらの環境は Mac OS X 10.4.2+J2SE SDK 5.0 PR1です。 | ||||
|
投稿日時: 2005-08-31 12:50
たびたびですみません、自己フォローですが、MacOS X 10.4.2上のJ2SE SDK 5.0でコンパイルしたクラスファイルを、試しにWindows XP上のJ2SE 5.0で実行してみたら、ちゃんと意図通りボタンを押した時点からアニメーションしますね…(泣)。MacOS X 上のJavaで、この現象を回避する方法をご存知の方はいらっしゃいませんでしょうか。 | ||||
|
投稿日時: 2005-08-31 13:01
JProgressBar の詳細は良くは知らないのですが、もしその13行目でうまくいくのならば、ボタンを押して停止することを自動化してしまうのが簡単だと思います。 たとえば JFrame の addNotify をオーバーライドしてその中で、 setIndeterminate(false) してみてはどうでしょう。 |
1