доступ к переменным и компонентам свинга через разные потоки
Этот вопрос связан с тем, который я задалВОТ. 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», я хочу обновить его значение по мере его изменения в этом потоке, но как-то этого не происходит. Как я могу это сделать?