Как я могу обновить мой jLabel через другую тему? - PullRequest
0 голосов
/ 01 мая 2020

Итак, я установил сокетное соединение, которое работает в другом потоке. Теперь я хочу обновлять количество соединений каждый раз, когда соединение принято. Но изменение в переменной c публикуется, но не в GUI метки. Вот фрагмент моего кода:

while(flag){
    try{
        s = ss2.accept();
        ob.inc();
        System.out.print(ob.counter.getText());
        String x = ob.counter.getText();
        System.out.println(x);
        System.out.println("connection Established");

    }

catch(Exception e){
    e.printStackTrace();
    System.out.println("Connection Error");

}

}}

Код в разделе GUI:

public void inc()
{
    ctr++;
       counter.setText(String.valueOf(ctr));
    counter.repaint();
}

Может кто-нибудь сказать, как я могу динамически изменять значения jLabel?

1 Ответ

0 голосов
/ 02 мая 2020

Если inc() вызывается из рабочего потока (не из основного потока или потока пользовательского интерфейса), то вы захотите заключить этот вызов в SwingUtilities.invokeLater().

...