2017-10-30 15 views
0

JLabelに文字列を出力したいが、各アルファベットは特定の時間の後に追加する必要がある。自分のプログラムでスレッドを使用していました。JLabelで文字列を表示して、各アルファベットを特定の時間の後に表示する方法

私のプログラムを実行しているときに、JLabelが最後のアルファベットを置き換えて新しい文字列を追加しています。JLabelは私の文字列の各アルファベットを追加します。ここで

は私のプログラムは次のとおりです。

public class Thread_in_Swing extends JFrame implements Runnable { 
    String s="HELLO PRASHANT"; 
    JLabel lb=new JLabel(); 

    Thread_in_Swing() { 
     lb.setBounds(10,50,200,40); 

     add(lb); 

     setLayout(null); 
     setTitle(s); 
     setVisible(true); 
     setSize(400,400); 
     setDefaultCloseOperation(EXIT_ON_CLOSE);    
    } 

    public static void main(String[] args) { 
     Thread_in_Swing t1=new Thread_in_Swing(); 
     t1.run();  
    } 

    @Override 
    public void run() { 
     String a; 
     for(int i=0;i<s.length();i++) { 
      a=Character.toString(s.charAt(i)); 
      lb.setText(a); 
      try { 
       Thread.sleep(1000); 
      } 
      catch (Exception e) { 

      } 
     } 
    } 
} 

私のプログラムが正常に実行され、1秒後に、それは最後の1を交換することによってString sでアルファベットを印刷しているが、私は、各アルファベットは、前を追加する必要がありますしたいです。

+0

'lb.setText(lb.getText()+ a)' – daniu

答えて

0

新しい文字を取得すると、以前に生成された文字列に追加する必要があります。 (lb.getText()+ a)

関連する問題