Этот вопрос связан с тем, который я задал HERE. Теперь у меня есть класс «Контроллер», который состоит из основного метода и всех компонентов поворота. существует класс с именем «VTOL», который состоит из переменной с названием «высота» (я уже объявил эту переменную изменчивой).Доступ к переменным и компонентам качания через разные потоки
здесь это класс, который состоит из нити, которая проходит в фоновом режиме:
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 в течение выполнения программы. Таким образом, я объявил его изменчивым (я не знаю, если это хорошая практика)
Во-вторых, есть класс jLabel в классе Controller с именем lblAltitude, я хочу обновить его значение по мере его изменения в этом потоке, но так или иначе не происходит. Как я могу это сделать?
Вы вообще не меняете 'VTOL.altitude'. Вы скопируете его в 'double', вычтите' 0.01', а затем верните его обратно в 'int' перед его копированием. Это не изменит' VTOL.altitude', потому что литье удалит дробную часть, включая '-0.01'. Является ли «VTOL.altitude» двойным? Если нет, вы можете это сделать. Вы должны обязательно удалить бросок в 'int'. – OldCurmudgeon
фактически VTOL.altitude - это int. моя цель - уменьшить vtol в 0,01 раза. Я не хочу, чтобы он вообще упал. поэтому я сделал это. – md1hunox
В этом случае вам нужно что-то вроде 'alt - = alt * 0.01' не так ли? Если вы действительно имеете в виду * уменьшение на коэффициент *. BTW - если он начинается с 0, он все равно не изменится даже с этим редактированием. – OldCurmudgeon