我是JavaFX新手。我有一个加载了垂直拆分窗格的窗口。在拆分页面的左侧,我有几个按钮。每次单击按钮时,我都需要在拆分窗格的右侧加载单独的fxml。所以在这里我粘贴屏幕截图以保持清晰。
从现在开始,当搜索按钮被点击时,我在不同的阶段,不同的场景中打开。现在我需要在baselayout窗口的右侧加载Searcher。下面是一些加载baseLayout的代码。
@Override
public void start(Stage primaryStage) throws Exception {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("Base Layout");
BaseController.setMlTool(this);
FXMLLoader loader = new FXMLLoader(MLTool.class.getResource("view/Base.fxml"));
baseLayout = (AnchorPane) loader.load();
Scene scene = new Scene(baseLayout);
primaryStage.setScene(scene);
primaryStage.show();
}
下面是一些点击按钮时加载搜索器的代码。
@FXML
private void initialize(){
System.out.println("Testing");
}
@FXML
private void handleSearchButton(){
System.out.println("Handle Button Called");
Stage search = new Stage();
FXMLLoader loader = new FXMLLoader(MLTool.class.getResource("view/Searcher.fxml"));
search.setTitle("Searcher");
try {
AnchorPane searcherPage = (AnchorPane) loader.load();
Scene scene = new Scene(searcherPage);
search.setScene(scene);
search.show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
下面是如何在BaseLayout的拆分窗格右侧加载Searcher。希望我的问题清楚。谢谢你的帮助。
在您的处理程序方法中尝试:
首先申报锚泊烷。在fxml右窗格中,放置带有AnchorController名称的anchorpane。
@FXML
private AnchorPane anchCmdController;
然后更新handleSearchButton事件。
@FXML
private void handleSearchButton() throws IOException {
System.out.println("Handle Button Called");
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("view/Searcher.fxml"));
Pane cmdPane = (Pane) fxmlLoader.load();
try {
/* NEED TO DECLARE ANCHOR PANE" */
anchCmdController.getChildren().clear();
anchCmdController.getChildren().add(cmdPane);
} catch (Exception e) {
e.printStackTrace();
}
}
试着听一下按钮的滴答声,一旦按钮被点击,就使用“FXMLLoader.load”来加载基于根元素的内容,将其转换为面板并分配给右侧的内容。
您可以在右侧获取窗格,然后将 fxml 作为该窗格的子节点加载。舞台始终相同,您可以在窗格中加载fxml。例如:MainWindow.fxml 是 perent window。您可以在分阶段加载。
Parent root = FXMLLoader.load(getClass().getResource("MainWindow.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
现在在MainWindow.fxml中,你有一个分割窗格。将anchorPan放在按钮单击时要加载fxml的右侧。然后在anchorpane中添加fxml作为子级。
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(fxml));
Pane cmdPane = (Pane) fxmlLoader.load();
try {
anchCmdController.getChildren().clear();
anchCmdController.getChildren().add(cmdPane);
fadeIn.playFromStart();
} catch (Exception e) {
e.printStackTrace();
}
我试图在jenkins管道中的不同节点上运行不同的阶段,比如第一阶段是签出,第二阶段是构建,第三阶段是单元测试。例如: 如果我尝试这样做,我的问题是如果我在Linux1节点中签出代码,那么当签出的代码在node1中时,为什么其他阶段可以在不同的节点中运行。 代码将如何分布,如果我的理解不正确,我如何实现并行,并确保每个阶段都可以并行并减少时间。 如果可能,请推荐任何用于编写Jenkins管道的gr
在 OpenResty 的体系中,可以通过共享内存的方式完成不同工作进程的数据共享,可以通过 Lua 模块方式完成单个进程内不同请求的数据共享。如何完成单个请求内不同阶段的数据共享呢?最典型的例子,估计就是在 log 阶段记录一些请求的特殊变量。 ngx.ctx 表就是为了解决这类问题而设计的。参考下面例子: location /test { rewrite_by_lua_block {
我有一个多分支管道架构的以下Jenkinsfile 我试图在Ubuntu和Red Hat节点上并行运行“构建”阶段,而仅在Ubuntu节点上运行“测试”阶段。 任何人都可以帮助我指定如何选择在哪些节点上运行哪些阶段。我在网上找到的解决方案很少,但他们建议重写构建阶段两次:一次用于Red Hat节点,另一次用于Ubuntu节点。难道没有办法在没有代码重复的情况下做到这一点吗? 非常感谢
我希望能够更改我在每个API网关方法中定义的endpoint,以便名为“Dev”的登台环境指向我的内部Dev API,而Prod阶段当然会路由到我的生产API。 现在,我必须手动更改每个方法,然后部署到prod stag,但现在,要进行任何测试,我必须在开发阶段再次将它们全部更改回来。 我有一个名为User的资源和一个映射到endpoint(HTTP代理)的GET方法->HTTP://dev.my
问题内容: 我有2个fxml文件: 布局(标题,菜单栏和内容) Anchorpane(应该放在另一个fxml文件的内容中) 我想知道如何从“主”场景将第二个文件加载到内容空间内。在javaFX中工作是一件好事,还是加载一个新场景更好? 我正在尝试做这样的事情,但是不起作用: 谢谢您的帮助。 问题答案: 为什么您的代码不起作用 加载程序会创建一个新的AnchorPane,但是您绝不会将新窗格添加到场