JavaFXのバグ、その1
JavaFXのバグを発見した。1.8.0では正常だが、10.0.2では発現する。Java9でどうかは確認していない。
再現コード
再現コードは以下である。なお、Oracleのバグデータベースにも報告してある。https://bugs.java.com/view_bug.do?bug_id=JDK-8208078だ。
import javafx.application.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.*;
public class Sample extends Application {
public void start(Stage stage) throws Exception {
FlowPane flowPane = new FlowPane();
Button one = new Button("one");
one.setDisable(true);
Button two = new Button("two");
two.setOnAction(e->one.setDisable(false));
Label label = new Label(System.getProperty("java.version"));
flowPane.getChildren().addAll(one, two, label);
Dialog<?> dialog = new Dialog<>();
dialog.getDialogPane().setContent(flowPane);
dialog.show();
}
public static void main(String[] args) {
Application.launch(Sample.class, args);
}
}
現象
ここで、ボタン「one」はdisabled状態になっており、「two」をクリックすると「one」をenableにする。
1.8.0では正常に動作し、oneがenabled状態に描画されるが、10.0.2ではdisabled描画のまま。しかし、実際にはenable状態になっており、クリックが可能になる。