JavaFx te Thread İle Saat Uygulaması
JavaFx ile saat uygulaması için aşağıdaki gibi basitçe bir tasarım ile AnchorPane ve Label ekliyoruz.
Saat uygulamamız için Thread kullanacağız. Bunun için Controller Sınıfımızın içinde Saat Adında (inner class) yeni bir sınıf oluşturuyoruz.
public class Controller implements Initializable {
@FXML Label saatLabel=new Label();
@Override public void initialize(URL location, ResourceBundle resources) {
Task task=new Saat(this);
Thread thread=new Thread(task);
thread.setDaemon(true);
thread.start();
}
private class Saat extends Task {
Controller controller;
public Saat (Controller controller) {
this.controller = controller;
}
@Override protected Void call() throws Exception {
makeChanges();
return null;
}
private void makeChanges() {
while (true) {
try {
Platform.runLater(new Runnable() {
@Override
public void run() {
Calendar calendar = new GregorianCalendar();
int saat = calendar.get(Calendar.HOUR_OF_DAY);
int dakika = calendar.get(Calendar.MINUTE);
int saniye = calendar.get(Calendar.SECOND);
controller.saatLabel.setText(saat + ":" + dakika+":"+saniye);
}
});
Thread.sleep(1000);
} catch (Exception ex) {
}
}
}
}
}
Yorumlar
Yorum Gönder