在while循环中编辑时,文本字段不会更新

时间:2013-11-09 00:13:13

标签: java swing while-loop jtextfield

我希望JTextFiled快速上升,好像它是一个时钟

以下代码位于鼠标侦听器中。 此外,t1是公共的,并在类中的main方法之前声明。 如果您有任何问题,请告诉我! ddd = 1.其余的switch语句与t1相同而不是t1或t3或t4 ...

        try {
                String rol = null;
            String har = null;
            int rolx = 0;
            int harx = 0;
            int newl = 0;
        switch (ddd) {
        case 1:
            rol = t1.getText();
            har = numb.getText();
            rolx = Integer.parseInt(rol);
            harx = Integer.parseInt(har);
            newl = rolx + harx;
            while (harx > 0) {
                harx --;
                rolx ++;
                Thread.sleep(10);
                System.out.println(""+rolx);
                t1.setText(""+rolx);
            }
            t1.setText(""+newl);

            break;

1 个答案:

答案 0 :(得分:1)

您在侦听器的事件处理代码中直接执行的任何操作都会保留事件处理线程,从而阻止任何GUI活动。

您需要将循环移动到另一个线程,或者使用某种形式的计时器。