第二个窗体中,你肯定没有用线程。
如果倒计时,不是一个线程,那么它在执行时,就和那个窗口是一个线程。你把这个计时放在了窗体系的显示之前了,这样,当然会是等倒计时结束才会显示窗体。
如果你放在显示之后,那么窗体显示出来以后,也不会动态的显示倒计时时间。
下边是倒计时的那个窗体。
------------------------------------------------------------------------------------------------
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Graphics;
public class RunTime extends JFrame {
TimePanel panel = null;
public RunTime() {
panel = new TimePanel(100);
getContentPane().add(panel, BorderLayout.CENTER);
new timer().start();
setSize(100, 120);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new RunTime();
}
class timer extends Thread {
public void run() {
try {
while (true) {
if (panel.time == 0) {
return;
}
repaint();
sleep(500);
}
} catch (Exception e) {
}
}
}
}
class TimePanel extends JPanel {
int time = 0;
public TimePanel(int time) {
this.time = time;
}
public void paint(Graphics g) {
super.paint(g);
g.drawString(time-- + "", 20, 50);
}
}
温馨提示:答案为网友推荐,仅供参考