Java定时间隔线程未执行,并且输出保持不变

时间:2019-07-18 18:43:56

标签: java swing

我希望我的Java程序每1000毫秒更改标签的颜色,但是到目前为止,更改字母的颜色和定时间隔都无效。

public class Swing extends javax.swing.JFrame {
    Counter counter;

    class Counter extends Thread {
        public void run() {
            while (true) {
                if (jLabel2.getForeground() == Color.blue) {
                    jLabel2.setForeground(Color.red);
                } else {
                    jLabel2.setForeground(Color.blue);
                }
                try {
                    sleep(1000);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Swing.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }

    public Swing() {
        initComponents();
        jLabel2.setForeground(Color.Blue);
        counter = new Counter();
        jLabel2.setText("Java is cool");
    }


    private void initComponents() {
        jLabel2 = new javax.swing.JLabel();
        jSlider2 = new javax.swing.JSlider();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    }
}

我希望程序显示一个名为“ Java is cool”的标签,该标签每1000毫秒更改一次颜色,但是,当我启动该程序时,它根本不会间隔更改标签颜色,而只是冻结在原地。

我还使用Java Swing设计视图,因此大多数声明不在此处。

0 个答案:

没有答案