我有一个实时React.cloneElement
用户应用程序,其标签为:React.createContext
,
当用户回答问题时,答案数量不会增加,并且当一个班级向用户提出问题时,问题数量会增加。
标签最初看起来像 - javafx
我想将两个不同的变量No of answers/No of questions
绑定到此标签,例如,如果我向用户投掷了10个问题,并且用户已回答2,它应该如下所示:0/0
(NumberOfAnswers, NumberOfQuestions)
这只会绑定标签的答案数。
提前致谢。
答案 0 :(得分:4)
您所需要的只是Bindings.concat(Object... args)
:
例如:
IntegerProperty noOfAnswers = answerConnector.noOfAnswersProperty();
IntegerProperty noOfQuestions = answerConnector.noOfQuestionsProperty();
ansQuesLbl.textProperty().bind(Bindings.concat(noOfAnswers, "/", noOfQuestions));
或者:
IntegerProperty noOfAnswers = answerConnector.noOfAnswersProperty();
IntegerProperty noOfQuestions = answerConnector.noOfQuestionsProperty();
ansQuesLbl.textProperty().bind(noOfAnswers.asString().concat("/").concat(noOfQuestions.asString()));
注意:为避免属性问题,我建议遵循javafx命名约定,以便answerConnector
的类看起来像这样:
public class AnswerConnector {
private final IntegerProperty noOfAnswers = new SimpleIntegerProperty(0);
public IntegerProperty noOfAnswersProperty() {
return noOfAnswers;
}
public int getNoOfAnswers() {
return noOfAnswers.get();
}
public void setNoOfAnswers(int noOfAnswers) {
this.noOfAnswers.set(noOfAnswers);
}
// same for noOfQuestions
}
答案 1 :(得分:2)
Bindings.format
可用于此目的:
ansQuesLbl.textProperty().bind(Bindings.format("%d/%d",
answerConnector.noOfAnswersProperty(),
answerConnector.noOfQuestionsProperty()));