主要BorderPane中的JavaFX切换场景/屏幕/应用程序

时间:2017-05-10 13:40:28

标签: java javafx netbeans fxml

这是问题,

我有一个JavaFX应用程序,主要显示元素是BorderPane。

我使用BorderPane的顶部显示按钮,它们将像“导航”按钮一样显示,中心显示当前所选的应用程序部分。

此链接中描述的某些解决方案应该可以解决问题:

https://community.oracle.com/thread/2598756

我对代码感到很困惑,我唯一真正理解的是它在列表上设置了某种changeListener,应该保存“selectedView”。

一旦列表发生变化,它就会在应用程序的主要部分触发一个函数,这个函数应该设置中心元素显示,并加载一个新的fxml文件。

所以,我试图实现完全相同的例子,只有2个级别(主要 - >中心)并且什么都不起作用。

以下是我创建的当前文件:

ScreenSwitcher.java
// Main class, loads the "main" fxml component

Main.fxml
// Main fxml component, BorderPane (buttons + center -empty-)

MainController.java
// Main controller, the magic should happen here

PaneOne.fxml & PaneTwo.fxml
// Children fxml, should only be displayed in the main->center element

PanelOneController.java & PaneTwoController.java
// Corresponding controllers

ViewControllerInterface.java
// An interface, as described in the given link explanation 

https://github.com/Julo0sS/ScreenSwitcher

首先,在app开始时,我收到此警告:

WARNING: Exception while evaluating select-binding [selectedView]

然后,当点击按钮切换主显示器时,没有任何反应......我确实让控制台显示“CALL TO GOPANEWO”(或GOPANEONE),所以它进入功能代码,但似乎是“ changeListener“不起作用......

也许我在代码中错了,也许有更好/更快的方式来实现我正在尝试的东西,但实际上,我只是坚持这个......

感谢您阅读/帮助

更新一个

现在可以让应用程序的一部分工作,

更改currentView“事件”发送,并且正常工作,由子视图本身发送(通过单击PaneOne中的按钮或PaneTwo),但在主视图中触发时不起作用(在顶部borderpane的一部分,应该是一个导航栏)

Git repo更新了最新修改......

0 个答案:

没有答案