2016-08-28 10 views
0

私はJFrameの時計を使っていますが、それ自体は上書きされ、私は自分のJFrameで自分の時計を見ようとしていますが、それ自体の上に書き込みを続けます。

//starting new Thread which will update time 
new Thread(new Runnable() { 
    public void run() { 
     try { 
      updateTime(); 
     } catch (Exception ie) {} 
    } 
}).start(); 
} 
public void updateTime() { 
    try { 
     while (true) { // geting Time in desire format 
      time.setText(new SimpleDateFormat("hh:mm:ss a").format(new java.util.Date())); 
      // Thread sleeping for 1 sec 
      Thread.currentThread().sleep(1000); 
     } 
    } catch (Exception e) { 
     System.out.println("Exception in Thread Sleep : " + e); 
    } 
} 
+0

。私のプログラムに書いていますが、それだけで上書きを続けています。私は自分のコードを投稿することができますが、スタックのオーバーフローは許されませんでした。 – noeway

+0

私は '時間'はJLabelコンポーネントであると仮定しようとしています。 JLabelのテキストを消去する前に、単にJLabelのテキストを消去するだけです。jLabel1.setText( "");どこに間違っているのかを確認するには、コードが本当に必要です。 – DevilsHnd

+0

時間のための私のコードがある、私はtime.setText( "");なんとなくそれはまだ時間を上書きし続けていました...私はsetText( "");で? – noeway

答えて

0

以下のコードは、JFrameでJLabelを更新する方法の実例です。私はあなたのコードを使用し、その上にいくつかのものを追加しました。私のJLabelが毎秒更新されているので、あなたはいくつかの異なる問題を抱えているように見えます。コードをコピーして実行してください。これがあなたの問題を見つけるのに役立つことを願っています。

import java.text.SimpleDateFormat; 

import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class teset { 

private static JFrame frame = new JFrame("FrameDemo"); 
private static JLabel time = new JLabel(); 

public static void main(String[] args) { 

    frame.add(time); 
    frame.pack(); 

    frame.setVisible(true); 

    new Thread(new Runnable() { 
     public void run() { 
      try { 
       updateTime(); 
      } catch (Exception ie) { 
      } 
     } 
    }).start(); 
} 

public static void updateTime() { 
    try { 
     while (true) { 
      time.setText(new SimpleDateFormat("hh:mm:ss a").format(new java.util.Date())); 
      Thread.currentThread().sleep(1000); 
     } 
    } catch (Exception e) { 
     System.out.println("Exception in Thread Sleep : " + e); 
    } 
} 

}

Iはframe.add(時間)を使用してい
関連する問題