JavaFX背景颜色菜单自动刷新

时间:2018-12-23 23:25:20

标签: javafx

我想自动刷新menuButton / Menu / MenuItem的颜色 进程是否启动。

但是我的背景颜色没有更新。

我绑定了style属性,我不知道这是个好方法。

我不使用CSS,也不想使用它,但是我也尝试使用getStyleClass()。clear()对CSS类进行尝试,然后添加我的类。

如果您知道一种设置背景颜色的方法,例如myMenuItem.setBackGroundColor(Color myColor); 它会自动刷新,这对您来说是个好主意:)。

谢谢。

view.java

@FXML
private MenuItem itmProcess;

@FXML
public void initialize() {

    JavaFxObservable.valuesOf(viewModel.itmProcessStyleProperty()) //
            .distinctUntilChanged() //
            .observeOn(JavaFxScheduler.platform()) //
            .subscribe(itmProcess.styleProperty()::set);

    // itmProcess.styleProperty().bind(viewModel.itmProcessStyleProperty()); tried too
}

viewModel.java

private final SimpleStringProperty itmProcessStyle = new SimpleStringProperty();

@Inject
private CheckStatusService checkStatusService;

@FXML
public void initialize() {

    startCom();
    itmProcessStyle.bind(checkStatusService.processStyleProperty());

    // processStyleProperty return "-fx-background-color: red;" or "-fx-background-color: lime;"
    // I'll check it with a thread and sysout
}

0 个答案:

没有答案