Я в настоящее время создает небольшую игру своего рода, и я создал следующий метод для начала раунда:JavaFX Bind Timeline Дисплей Выпуск
private void startRound(){
int playerStarting = rnd.nextInt(2) + 1;
imageBox.managedProperty().bind(imageBox.visibleProperty());
imageBox.setVisible(false);
VBox timeBox = new VBox();
Label timeLabel = new Label();
timeLabel.setId("RoundTimer-Label");
timeBox.setAlignment(Pos.CENTER);
timeBox.getChildren().add(timeLabel);
gr.add(timeBox, 1, 0, 1, 4);
Timeline tl = new Timeline(1);
tl.getKeyFrames().add(new KeyFrame(Duration.seconds(3)));
timeLabel.textProperty().bind(tl.currentTimeProperty().asString());
tl.playFromStart();
timeLabel = null;
timeBox = null;
imageBox.setVisible(true);
}
Все работает правильно, за исключением одного вопроса.
tl.currentTimeProperty().asString();
Отображает номер как нечто вроде 1000,7 мс и 2001 мс, и я бы предпочел, если бы это было не так. Однако поскольку currentTimeProperty является свойством Property, внутри него нет встроенных операторов, таких как .divide (1000), которые я могу использовать на нем, и я не могу привязать свой текст ярлыка к самому длительности, хотя у него есть .divide (1000). Что-то мне не хватает здесь, или я должен подходить к этому совершенно по-новому? Благодарю.