Я попытался добавить Medusa Gauge в свой проект JavaFX, использующий FXML. Я правильно сопоставил fx:id
в конструкторе сцен и установил отображаемое значение.
Но, к сожалению, значение не отображается, и отображается только значение по умолчанию 0.00
.
Вот мой код
Класс, содержащий основной метод — GaugeFX.java
public class GaugeFX extends Application {
@Override
public void start(Stage stage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("Demo.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
} catch (IOException ex) {
Logger.getLogger(GaugeFX.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
FXML — Демо.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import eu.hansolo.medusa.Gauge?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.102" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gaugeDemoFX.DemoController">
<children>
<Gauge fx:id="gaugeExample" alert="true" alertMessage="Almost full" animated="true" areaTextVisible="true" layoutX="123.0" layoutY="113.0" lcdFont="ELEKTRA" skinType="SLIM" />
</children>
</AnchorPane>
Контроллер FXML — DemoController.java
public class DemoController implements Initializable {
@FXML
Gauge gaugeExample;
@Override
public void initialize(URL url, ResourceBundle rb) {
GaugeBuilder builder = GaugeBuilder.create();
gaugeExample = builder.decimals(0).maxValue(10000).unit("Questions").build();
gaugeExample.setValue(45);
}
}
Пробовал смотреть документацию. Там примеры были сделаны в жестком кодировании. Я заметил, что значение Gauge
было установлено перед показом сцены.
Но, насколько мне известно, я сделал то же самое, даже если использовал FXML для создания проекта.
Может кто-нибудь, пожалуйста, скажите мне, где я ошибся, что значение, которое я установил, не отображается?