- - PR -
JLabelを点滅させたいですが
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-13 23:05
はじめまして。Javaのビギナーです。
標記の件について質問させていただきます。 JLabelを何回点滅させたいのですが、私のソースがなかなか実現できないです。 私のソースはプログラムが起動後、メーンメソッドにおいている点滅機能のメソッド(public void m() )がちゃんと作動できたが、ボタンのイベントハンドラーの中で、オブジェクトのjlabel2を点滅させることが出来なかったのです。 ソースは以下の通りです。分かる方、ご教授をお願いいたします。 public class BlingTest extends JFrame{ public static JFrame jframe; public static JPanel jpanel; public static JButton jbutton; public static JLabel jlabel, jlabel2; public ButtonEventHandler buttonEventHandler; /** * @param args */ public static void main(String[] args) { boolean b = true; BlingTest blingTest = new BlingTest(); blingTest.init(); /**** ここのソースきちんと作動できる ******/ for(int i=0; i<5; i++){ System.out.println(i); if(b){ jlabel.setBackground(Color.red); b = false; }else{ jlabel.setBackground(Color.green); b = true; } try{ Thread.sleep(500); }catch(Exception e){} } } public void init(){ jframe = new JFrame(); jpanel = new JPanel(); jbutton = new JButton("Click"); buttonEventHandler = new ButtonEventHandler(this); jbutton.addActionListener(buttonEventHandler); jlabel = new JLabel("111"); jlabel2 = new JLabel("222"); jlabel.setOpaque(true); jlabel2.setOpaque(true); jpanel.add(jlabel); jpanel.add(jlabel2); jpanel.add(jbutton); jframe.getContentPane().add(jpanel); jframe.pack(); jframe.setVisible(true); } public void method1() { for(int i=0; i<10; i++){ int k = i; n(k); method4(); i = k + 1; } } public void method2(){ // do something } public void method3(){ // do something } public void method4(){ // do something } public void n(int k){ //....do something // ここは点滅機能のメソッド m(true); //....do something } public void m(boolean b){ for(int i=0; i<5; i++){ System.out.println(i); if(b){ jlabel2.setBackground(Color.red); b = false; }else{ jlabel2.setBackground(Color.green); b = true; } try{ Thread.sleep(500); }catch(Exception e){} } } } class ButtonEventHandler implements ActionListener{ BlingTest blingTest; ButtonEventHandler(BlingTest blingTest){ this.blingTest = blingTest; } public void actionPerformed(ActionEvent ae) { // このメソッドの中で点滅メソッドをコール blingTest.method1(); System.out.println("The button is clicked, and the label is blinked."); blingTest.method2(); blingTest.method3(); } } | ||||
|
投稿日時: 2006-05-14 12:33
こんにちわ。
もの凄く妙な(?)感じがしますが、動きます。
|
1