2013-08-29 5 views
0

조건을 만족 한 후 100 %까지 진행을 시도하고 있습니다. 하지만 변수 "progressBar"를 찾지 못했습니다. 대신 진행률을 설정하면 가시성이 설정됩니다.JavaFx 진행 상황에서 변수를 해결할 수 없습니다.

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); 
    } 
}); 

탱크의

+0

하지만, 불행하게도,이 질문에 날 문제는 해결하려는 것이 무엇인지 이해할 수 없습니다 기록되어있는 방식. – scottb

+0

죄송합니다, 제 언어는 영어가 아닙니다. – Giovane

+0

예외가있는 경우 (코드 주석이 있음을 나타냄) 예외를 포함하도록 질문을 편집하면 스택 추적이됩니다. – jewelsea

답변

0

나는 당신의 문제는 당신이 단방향 바인딩 값을 설정할 수 있다는 것입니다 생각합니다.

Unbind 설정하기 전에 값을 지정하십시오. 예를 들어

:

나는 영어 사용을 비판 싫어
if (newValue.equals(ConstantesEtapa.ETAPA_OK)) { 
    progressBar.progressProperty().unbind(); 
    progressBar.setProgress(1.0); 
} 
관련 문제