Как изменить метку Java из потока? - PullRequest
0 голосов
/ 16 сентября 2018
class firstThread implements Runnable {

      public Thread t;

      @Override
      public void run() { 
        for (int x = 1; true; x++) { 
          System.out.print(x + " "); 
          NewJFrame.a = x;
          try {
            Thread.sleep(1000);
          } catch (InterruptedException ex) {
            Logger.getLogger(firstThread.class.getName()).log(Level.SEVERE, null, ex);
          }
        }
      }

      public void start() {
        t = new Thread(this, "first");
        t.start();
      }
}

Я хочу обновить значение метки jframe (значение переменной).

Как я могу это сделать?

1 Ответ

0 голосов
/ 16 сентября 2018

если вы обновляете компоненты пользовательского интерфейса Swing из потока, отличного от «EventDispatchingThread», всегда делайте это следующим образом:

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        label.setText("new_label_text");
    }
});

https://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...