有没有可能等待场景重绘的方法?
我的问题是,我想使用getChildren()。add()向窗格添加注释,然后使用Node.fireEvent(event)在此节点上触发事件。
但事件未执行。我认为问题是,场景没有重新粉刷,因此Node现在不是新场景的一部分。
所以最好的方法是等待场景重绘,然后点燃我认为的事件。
答案 0 :(得分:0)
我不知道你在这里使用的是哪个UI组件,但是,尝试找出组件的invalidate()方法(或类似的东西),以使其更新屏幕。
答案 1 :(得分:-1)
你可以发布代码吗?这对我来说很好:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class NewNodeEventTest extends Application {
@Override
public void start(Stage primaryStage) {
HBox root = new HBox(5);
Button newNodeButton = new Button("Add button");
newNodeButton.setOnAction(event -> {
Button newButton = new Button("Button");
newButton.setOnAction(e -> System.out.println("New button pressed"));
root.getChildren().add(newButton);
ActionEvent evt = new ActionEvent(newButton, newButton);
newButton.fireEvent(evt);
});
root.getChildren().add(newNodeButton);
Scene scene = new Scene(root, 250, 100);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}