javafx用户界面未更新?

时间:2019-06-04 09:27:42

标签: user-interface javafx properties

我是JavaFX的新手。 我正在为我的项目构建GUI,但我遇到了问题- 似乎一旦显示我的用户界面,它就会停止更新。 就我而言,它应该更新一个圆圈的填充颜色,但是不能。

我试图移动这条线: someCircleId.setFill(color)); 高于线: Main.stage.show(); 在我的代码的initialize函数中,它确实改变了颜色 一定的圈子。

public class UIController implements Initializable {
            public UIController() {
                fillMap();
            }
    @Override
            public void initialize(URL location, ResourceBundle resources) {
                Main.stage.show();
            }

            @FXML
            public void pressExitButton() {
                Main.dropDBSchema();
                System.exit(0);
            }

        public void changeCircleColor(String circleKey, Color color) {
            Platform.runLater(
                    () -> {
                        Circle circle = this.circles.get(circleKey);
                        PauseTransition delay = new PauseTransition(Duration.seconds(10));
                        delay.setOnFinished(event ->  circle.setFill(color));
                        delay.play();
                    }
            );
        }

                }

这是使用这些功能的类:

public class MonitoringLogicImpl implements MonitoringLogic {

    public void updateUI(UUID flowUUID, String sender, String receiver, DATA_STATUS status){
        String key = flowUUID.toString()+"_"+sender+"_"+receiver;
        Color color = this.uiController.getColorAccordingToStatus(status);
        this.uiController.changeCircleColor(key, color);
    }
   }

这是FXML初始化:

public void start(Stage stage){
        this.stage = stage;
        FXMLLoader loader = new FXMLLoader();
        try {
            loader.setLocation(getClass().getResource("/UserInterface.fxml"));
            this.root = loader.load();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e){
            e.printStackTrace();
        }
        stage.setTitle("Troubleshooting project");
        stage.setScene(new Scene(root, 900, 700));
        stage.show();
    }

我使用Scene-Builder工具创建了UI。

0 个答案:

没有答案