2017-05-04 1 views
0

나는 여전히 배우고 객체에 저장된 double 값에 자바 FX의 ProgressBar를 결합하고 난 당신이 날 도울 수 있기를 바랍니다합니다 :어떻게

을 내가 비율의 진행 상황을 나타내는 두 값을 저장하는 객체 myObject(myObject가 초기화되지 않은 경우 값은 0D이며 종종 myObject 내부에서 100D에 도달 할 때까지 업데이트됩니다).


나는 그래서 인 myObject에 저장된 값이 업데이트 될 때, 바인드에게하는 자바 FX의 ProgressBar이 두 배 값을 원하는, 그래서 진행 막대는 것이다.


은 뭔가에 대한 관찰자/관찰 가능한/리스너를 들었다.
내가 뭘 찾고있는거야? 누군가 이해할 수 있도록 코드를 보여줄 수 있습니까?

감사합니다!

+0

다음이 도움이 될 수 있습니다. http://docs.oracle.com/javase/8/javafx/properties-binding-tutorial/binding.htm#JFXBD107 –

답변

1

저는 5 개월 늦었지만, 단지 had a very similar problem 인 것을 알고 있습니다. 그리고 내 검색 중에 다른 사람이 대답하지 않은 질문이 나타났습니다. 아무도 내 의견에 답하지 못했습니다. 그래서 나 자신을 알아낼 때까지 계속 파고 들었습니다. 나는 내가 당신의 게시물을 우연히 발견해서 답을 찾으면 다른 사람도 결국 그렇게했을 것이라고 생각합니다. 그래서 제 대답을 나누고 싶었습니다.

예, 찾고있는 것은 ObservableDouble입니다. 당신이 인 myObject를 변경할 수 있다고 가정하면 두 번 할 수 :

progressBar.progressProperty().bind(barUpdater); 

: 어딘가에 초기화에서,

DoubleProperty barUpdater = new SimpleDoubleProperty(myObject); 

그리고하여 줄 그것, 바인드 (또는 당신은 막대를 사용하여 어디든지) 그런 다음 ProgressBar를 업데이트하려면 에 업데이트 프로그램의 값을 설정하면됩니다.

barUpdater.set(myObject); 

이렇게하면 ProgressBar가 수신 대기중인 ObservableDouble을 업데이트하여 값을 업데이트하게됩니다.

필요에 따라 사용중인 코드의 예는 my answer here을 참조하십시오.