Ich habe eine ChangeListener
dass, wenn ausgelöst, eine findGPA()
Methode aufgerufen wird.Wie bindet man eine StringProperty an ein BigDecimal?
private BigDecimal decGPA = BigDecimal.ZERO;
Im initialize()
Methode::
private void findGPA(){
GPA = gradeCre/sum;
decGPA = new BigDecimal(GPA);
decGPA = decGPA.setScale(2, RoundingMode.CEILING);
System.out.println("Your average GPA is: " + decGPA);
}
The BigDecimal
wird wie folgt initialisiert
SubmitStageBorderPane.setBottom(AddStackCircle());
die Anrufe:
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;
}
Wenn jedoch i es laufen, es pro duziert den folgenden Etikettentext Your semester GPA is: StringProperty[bound, invalid]
, und es ändert sich auch nicht, wenn sich der Wert decGPA
ändert.
Mögliches Duplikat [Bidirektionale Bindungen unterschiedlicher Eigenschaften] (https://stackoverflow.com/questions:
die
findGPA
Methode richtig wie folgt aufgerufen Unter der Annahme, sollte es umgesetzt werden/14138082/bidirektionale Bindungen von unterschiedlichen Eigenschaften) – Flown