2015-08-23 5 views
0

Проблема, с которой я сталкиваюсь с этой программой, заключается в том, что сначала я хочу, чтобы на ярлыке отображалась системная дата, подождите 5 секунд, а затем показывается «привет», однако запуская код, на этикетке отображается только «привет». Пожалуйста, помогите мне найти мою ошибку.Ярлык не показывает предыдущий текст, показывая только обновленный текст

import java.util.*; 
import javax.swing.*; 

class DigClock 
{ 

public static void main(String a[]) 
{ 
    try 
    { 
     JFrame f= new JFrame(); 
     JPanel p=new JPanel(); 
     JLabel l=new JLabel((new Date()).toString()); 
     p.add(l); 
     f.add(p); 
     Thread.sleep(5000); 
     l.setText("hi"); 
     f.setVisible(true); 
     f.setExtendedState(JFrame.MAXIMIZED_BOTH); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
    catch(Exception e) 
    {} 
    } 
} 
+0

Может быть, потому, что ваш поток спит 5с до вашего кадра устанавливается видимым? Вы можете попробовать перевести строку Thread.sleep с помощью строки f.setvisible. Не могу попробовать это прямо сейчас, потому что я далеко от своего ПК :) – theman

ответ

0

простая ошибка ... Вы пишете

thread.sleep 

перед видимостью формы, в то время сна ваша видимость страницы является ложным, и вы не можете увидеть на этой странице. Это означает, что вы можете открыть страницу через 5 секунд. Через пять секунд метка уже изменена.

Скопируйте этот код

public class DigClock { 

     /** 
     * @param args the command line arguments 
     */ 
     public static void main(String[] args) { 
      // TODO code application logic here 
      try 
     { 
      JFrame f= new JFrame(); 
      JPanel p=new JPanel(); 
      JLabel l=new JLabel((new Date()).toString()); 
      p.add(l); 
      f.add(p); 

      f.setVisible(true); 
      f.setExtendedState(JFrame.MAXIMIZED_BOTH); 
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      Thread.sleep(5000); 
      l.setText("hi"); 
     } 
     catch(Exception e) 
     {} 
     } 
    } 

Regds ..

Смежные вопросы