如何在JavaFX中使用checkbox或combobox readonly

yel*_*ver 4 readonly javafx-2

如何在javaFX中使checkbox/combobox readonly但不禁用.

我试过消耗onAction事件,但它没有用.

checkBox.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        event.consume();
    }
});
Run Code Online (Sandbox Code Playgroud)

在下面的代码中使用所有事件都有效,但我不认为这是一个很好的解决方案:

checkBox.addEventFilter(KeyEvent.ANY, new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent event) {
        event.consume();
    }
});
checkBox.addEventFilter(MouseEvent.ANY, new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEventevent) {
        event.consume();
    }
});
Run Code Online (Sandbox Code Playgroud)

And*_*ill 15

您可以将复选框设置为禁用,但使用CSS设置它的外观.如果您使用的是默认样式,则可以通过设置完全不透明度使复选框看起来"正常".

checkbox.setStyle("-fx-opacity: 1");
Run Code Online (Sandbox Code Playgroud)

它可能与组合框类似.

  • 要命!这么简单但很有用:) (3认同)