У меня проблема с javaFX.Я хочу отображать время в окне приложения каждые 1000 мс.
public class Main extends Application {
StackPane root = new StackPane();
Time time;
Text t1;
@Override
public void start(Stage primaryStage) throws Exception{
root.setStyle("-fx-background-color: #00FF00");
primaryStage.setTitle("My App");
primaryStage.setScene(new Scene(root, 1000, 800));
primaryStage.show();
checkTime();
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent t) {
Platform.exit();
System.exit(0);
}
});
}
public static void main(String[] args) {
launch(args);
}
public void checkTime(){
time = new Time();
time.start();
}
public void displayTime(int hour, int minute, int second){
t1= new Text(200, 50, hour + ":" + minute + ":" + second);
root.getChildren().add(t1);
}
}
И это второй класс:
package sample;
import java.util.Calendar;
public class Time extends Thread {
Thread t;
public int hour;
public int minute;
public int second;
Calendar calendar;
Main main = new Main();
Time() {
}
public void run() {
for (; ; ) {
try {
getTime();
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
public void start() {
t = new Thread(this);
t.start();
}
public void getTime() {
calendar = Calendar.getInstance();
hour = calendar.get(Calendar.HOUR);
minute = calendar.get(Calendar.MINUTE);
second = calendar.get(Calendar.SECOND);
System.out.println(hour + ":" + minute + ":" + second);
main.displayTime(hour, minute, second);
}
}
Я бы хотел, чтобы он работал аналогично цифровым часам.На следующих этапах проекта я хочу использовать этот способ аналогично другим 2D-фигурам.
В этот момент после включения приложения время, проведенное в консоли, является правильным.Тем не менее, я бы хотел, чтобы точно такое же время отображалось в окне приложения, в данный момент отображается только фон и больше ничего.