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

Bu blogdaki popüler yayınlar

İç İçe Bağımlı DropdownListFor (Cascading)

Asp.Net Core View Components Kullanımı

Partial - RenderPartial - Html.Action - Html.RenderAction Kullanımı