如何每小时,分钟和秒钟更新一次面板。 给定的代码适用于基于CMD的显示,但不适用于面板。
if((!_hour.equals(""))&&(!_minute.equals(""))&&(!_second.equals("")))
{
frame.dispose();
//Timer time = new Timer(1000, new TimerListener());
hour = Integer.parseInt(hours.getText());
minute = Integer.parseInt(minutes.getText());
second = Integer.parseInt(seconds.getText());
hour = ((hour>=0 && hour<24) ? hour : 0);
minute = ((minute>=0 && minute<60) ? minute : 0);
second = ((second>=0 && second<60) ? second : 0);
while(second > 0)
{
try
{
Thread.sleep(1000);
second--;
timeleft.setText("Time left: " +obj.setTime(hour, minute, second));
if(second == 0)
{
while(minute > 0)
{
try
{
Thread.sleep(60000);
minute--;
timeleft.setText("Time left: " +obj.setTime(hour, minute, second));
if(minute == 0)
{
while(hour > 0)
{
try
{
Thread.sleep(3600000);
hour--;
timeleft.setText("Time left: " +obj.setTime(hour, minute, second));
}
catch(InterruptedException err)
{
err.printStackTrace();
}
}
}
}
catch(InterruptedException err)
{
err.printStackTrace();
}
}
}
paneltimer.add(timeleft);
timer.add(paneltimer);
timer.setUndecorated(true);
timer.setVisible(true);
timer.pack();
timer.setAlwaysOnTop (true);
timer.setLocation(500, 0);
}
catch(InterruptedException err)
{
err.printStackTrace();
}
}
}
它应该显示这样的东西(但是秒应该是,例如3,如果我输入3但是在我的情况下它最初将输出2)并且面板应该在每次减少秒,分钟和小时时更新它只是保持如下所示:
除此之外,它还有以下例外情况。
请告诉我如何根据我的实施更新面板谢谢!