JavaFX'de oluşturulan Thread, FX'in threadına uyumsuz olarak ilerleyebilmekte, bu durumda Not on FX application thread; currentThread = JavaFX Application Thread error? hatası gelemektedir.
FX (arayüzden) bağımsız Thread'lerdee sorun oluşmaz.
Arayüzü bağımlı Thread'lerde Platform.runAfter{() -> {}} yapısı kullanılır
Thread'i platformdan sonra başlat anlamına gelmektedir
newThread(() -> {Image resim = uzunSürenBirİşlem();imageView.setImage(resim); // Bu udurmda thread ile FX yapısı kesişir ve hata verir}).start();newThread(() -> {Image resim = uzunSürenBirİşlem();Platform.runAfter(() ->imageView.setImage(resim)); // Yapısı ile FX hazır olduktan sonra işlem yapılır}).start();
✨ CSS ile Stil Oluşturma
Buton gibi alt öğrelere .buton css class'ı ile özellik tanımlayabilirsin
Her eleman içinde bulunduğu panelin css özelliğini taşır
Bu işlem için resource dizini IntelliJ'de işaretlemeniz gerekmektedir.
importjavafx.scene.image.Image;// load an image in background, displaying a placeholder while it's loading// (assuming there's an ImageView node somewhere displaying this image)// The image is located in default package of the classpathImage image1 =newImage("/flower.png",true);// load an image and resize it to 100x150 without preserving its original// aspect ratio// The image is located in my.res package of the classpathImage image2 =newImage("my/res/flower.png",100,150,false,false);// load an image and resize it to width of 100 while preserving its// original aspect ratio, using faster filtering method// The image is downloaded from the supplied URL through http protocolImage image3 =newImage("http://sample.com/res/flower.png",100,0,false,false);// load an image and resize it only in one dimension, to the height of 100 and// the original width, without preserving original aspect ratio// The image is located in the current working directoryImage image4 =newImage("file:flower.png",0,100,false,false);