【问题标题】:JavaFx Progress cannot be to solve a variableJavaFx Progress 不能解决变量
【发布时间】:2013-08-29 17:16:15
【问题描述】:

在满足条件 OK 后,我正在尝试将进度提高到 100%。但它没有找到变量“progressBar”,如果我没有设置进度,而是设置了可见性,就可以了。

columSituacao.setCellValueFactory(new Callback<CellDataFeatures<Tabela, HBox>, ObservableValue<HBox>>() {

    public ObservableValue<HBox> call(CellDataFeatures<Tabela, HBox> p) {

        final Tabela tabela = p.getValue();

        final ProgressBar progressBar = new ProgressBar(0.0);
        progressBar.setPrefWidth(columSituacao.getWidth());
        progressBar.progressProperty().bind(tabela.progressProperty());

        final HBox box = new HBox();
        box.setPrefHeight(Progress.PREF_HEIGHT);

        final Text text = new Text();
        text.textProperty().bind(tabela.etapaProperty());

        final BorderPane border = new BorderPane();
        border.setTop(text);
        border.setBottom(progressBar);
        BorderPane.setAlignment(text, Pos.CENTER);

        tabela.etapaProperty().addListener(new ChangeListener<String>() {

            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {

                if (newValue.equals(ConstantesEtapa.ETAPA_OK)) {
                    progressBar.setProgress(1.0);//Here is the exception
                }
            }
        });
        box.getChildren().add(border);
        return new SimpleObjectProperty<HBox>(box);
    }
});

坦克的

【问题讨论】:

  • 对不起,我的语言不是英格尔斯。
  • 如果存在异常(并且您的代码注释表明存在),则编辑您的问题以包含异常及其堆栈跟踪。

标签: java javafx-2 javafx


【解决方案1】:

我认为您的问题是您无法设置单向绑定值。

Unbind 设置之前的值。

例如:

if (newValue.equals(ConstantesEtapa.ETAPA_OK)) {
    progressBar.progressProperty().unbind();
    progressBar.setProgress(1.0);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-27
    • 2021-09-28
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多