gpt4 book ai didi

JavaFX-8 - 无法在 SplitPane 容器中找到任何节点

转载 作者:行者123 更新时间:2023-12-01 18:27:36 26 4
gpt4 key购买 nike

我需要在应用程序启动时加载 JavaFX TreeView 数据。问题是节点lookup()方法总是返回null。

代码

public class Main extends Application {

public static final String APPLICATION_NAME = "testapp" ;

public static void main(String args[]) {
launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
String fxml = "/fxml/main-window.fxml";
String globalCss = "/styles/main.css";
FXMLLoader loader = new FXMLLoader(getClass().getResource(fxml));
Parent root = (Parent) loader.load();
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.getScene().getStylesheets().add(globalCss);
primaryStage.setMaximized(true);

TreeView treevw = (TreeView) scene.lookup("#treevw");
// lazy init here

primaryStage.show();
}
}

FXML

http://pastebin.com/aC2gHMjp

java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

我找到了this解决方案,但它对我不起作用(两者)。

有人可以帮忙解决这个问题吗?

最佳答案

lookup(...) 通常会返回 null,直到完成 CSS 传递,这通常意味着您需要在显示舞台后(但可能在此之后)执行此操作。

但这确实不是您想做的事情的正确方法。定义一个 Controller ,在 TreeView 上设置 fx:id 并在 Controller 的 initialize() 方法中执行初始化。

关于JavaFX-8 - 无法在 SplitPane 容器中找到任何节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com