Belirli değerleri hesaplamak için JavaFX NumberBindings kullanıyorum. Başlangıçta her şey beklendiği gibi çalışır. Bununla birlikte, oldukça az bir süreden sonra, bağlanma sadece çalışmayı durdurur. Ben de bir İstisna almıyorum.JavaFX Fasulye Bağlama aniden çalışmayı durdurur
Çeşitli bağlamaları yanı sıra yüksek ve düşük düzey yaklaşımları denedim. Hesaplamanın kendisi (geçersiz kılındığında) bile durur ve artık aranmaz. Ayrıca en son JDK (1.8.0_05) güncellemelerini yaptım ve her şeyi yeniden oluşturdum/yeniden başlattım.
Aşağıdaki Minimal Çalışma Örneği sorunu gösterir. Ana pencerenin geçerli genişliğini STDOUT olarak System.out.println yapmalıdır. Pencereyi yaklaşık 10 saniye yeniden boyutlandırdıktan sonra, çıkış sadece durur. Mülkün sürekli kullanımını sağlamak için ortaya çıkan mülkiyeti bir JavaFX kontrolüne bağlamayı denedim, ama bu hiçbir faydası olmadı. Buradaki Mülk/Bağlanmaların bazı çok temel davranışlarını kaçırdığına inanıyorum, Google bu davranışı hiç bilmiyor gibi görünüyor.
import javafx.application.Application;
import javafx.beans.binding.NumberBinding;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class BindingsProblem extends Application {
@Override
public void start(Stage primaryStage) {
// Initialization...
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
// Binding - The problem occurrs here!
NumberBinding currentWidthPlusTen = primaryStage.widthProperty().add(10);
IntegerProperty boundNumberProperty = new SimpleIntegerProperty();
boundNumberProperty.bind(currentWidthPlusTen);
boundNumberProperty.addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
System.out.println(newValue.toString());
}
});
}
public static void main(String[] args) {
launch(args);
}
}
Sorunu yeniden oluşturabilirim. Bir böcek gibi görünüyor. Jira'yı aradınız mı? – assylias
Mevcut hata raporlarını bulamıyorum. Çok basit bir şey gibi görünüyor, JDK/JRE'nin kendisinde bir hata olduğunu düşünmek zor. – underkuerbis