私はChangeListener
を持っています。トリガーされるとfindGPA()
メソッドが呼び出されます。 initialize()
方法でStringPropertyをBigDecimalにバインドする方法は?
private BigDecimal decGPA = BigDecimal.ZERO;
:
SubmitStageBorderPane.setBottom(AddStackCircle());
呼び出す:
private StackPane AddStackCircle(){
StackPane stackCircle = new StackPane();
StringProperty gpa = new SimpleStringProperty("");
gpa.bind(new SimpleStringProperty(decGPA.toString()));
Text avgGPA = createText("Your semester GPA is: " + gpa);
Circle resultCircle = createCircle(avgGPA);
stackCircle.getStyleClass().add("stackCircle");
stackCircle.getChildren().addAll(resultCircle, avgGPA);
return stackCircle;
}
private Circle createCircle(Text avgGPA){
Circle resultCircle = new Circle();
resultCircle.setFill(Color.GREEN);
resultCircle.setStroke(Color.GREY);
resultCircle.setStrokeWidth(3);
resultCircle.setRadius(getWidth(avgGPA)/2 + 10);
return resultCircle;
}
private Text createText(String text){
Text avgGPA = new Text(text);
avgGPA.setBoundsType(TextBoundsType.VISUAL);
avgGPA.getStyleClass().add("avgGPA");
return avgGPA;
}
をしかし、私はそれを実行すると、以下のように
private void findGPA(){
GPA = gradeCre/sum;
decGPA = new BigDecimal(GPA);
decGPA = decGPA.setScale(2, RoundingMode.CEILING);
System.out.println("Your average GPA is: " + decGPA);
}
BigDecimal
Your semester GPA is: StringProperty[bound, invalid]
が生成され、
decGPA
の値が変更されても変更されません。
[異なる特性の双方向バインディング]の可能な重複(https://stackoverflow.com/questions:
findGPA
方法が適切に呼ばれ、それは次のように実施されるべきであると仮定すると/14138082/bidirectional-binding-of-different-properties) – Flown