доступ к переменным и компонентам свинга через разные потоки

Этот вопрос связан с тем, который я задалВОТ. Now, i have a class "Controller" which consists of the main method and all the swing components. there is a class named "VTOL" which consists of a variable named "altitude"(i have declared this variable volatile as of now).

Вот класс, который состоит из потока, который работает в фоновом режиме:

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Vineet
 */
public class Gravity extends Thread {

    String altStr;
    double alt;
    Controller ctrl = new Controller();

    @Override
    public void run() {
        while (true) {
            alt=VTOL.altitude;
            System.out.println(alt);
            alt = alt-0.01;
            VTOL.altitude= (int) alt;
            altStr=new Integer(VTOL.altitude).toString();
            ctrl.lblAltitude.setText(altStr);
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }
}

Во-первых, проблема, с которой я столкнулся изначально, заключалась в том, что я не мог обновить значение «высоты». во время выполнения программы оставалось 0. Таким образом, я объявил это как изменчивый (я не знаю, хорошая ли это практика)

Во-вторых, в классе Controller есть jLabel с именем «lblAltitude», я хочу обновить его значение по мере его изменения в этом потоке, но как-то этого не происходит. Как я могу это сделать?

Ответы на вопрос(3)

Ваш ответ на вопрос