- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 JavaFXML 和场景生成器编写系统。我创建了一个登录页面,您可以在其中以管理员或员工身份登录。在管理包中,我有 Admin.FXML 和 AdminController。
无论如何,我使用了 TabPane,并且有五个选项卡,第一个名为“客户”,所有实现(代码)都在 AdminController 中,因为这是 AnchorPane 的设置根 Controller 。
正如您可以想象的那样,在一个 Controller 类中编写这五个选项卡的所有代码将非常冗长。有没有一种方法可以为各个选项卡提供多个 Controller 类(每个选项卡一个)和一个 FXML 文件或多个 FXML 文件和 Controller 类?
最佳答案
是的,这是可能的。你要找的是神奇的<fx:include>
标签。我有一个类似的选项卡式应用程序,我为每个选项卡编写了一个 FXML 和一个 Controller ,并将它们包含在两个位置,一次在 FXML 中,一次在主 Controller 代码中。我将在此处复制并粘贴我的示例。
主要 FXML:
<TabPane xmlns:fx="http://javafx.com/fxml"
fx:controller="my.package.MainController" fx:id="root">
<tabs>
<Tab text="First Tab">
<fx:include fx:id="firstTab" source="FirstModule.fxml"/>
</Tab>
<Tab text="Second Tab">
<fx:include fx:id="secondTab" source="SecondModule.fxml"/>
</Tab>
</tabs>
</TabPane>
主 Controller :
public class MainController {
@FXML
private TabPane root;
@FXML
private FirstModuleController firstTabController;
@FXML
private SecondModuleController secondTabController;
// other code
}
这里需要注意的一件事是,我通过使用给定的 fx:id
来包含 Controller 本身来自 FXML 文件,包含单词 Controller
添加到最后。这指定您希望 Controller 与所包含的 fxml 文件的根关联,而不是与根本身关联。例如,如果 FirstModule.fxml 的根目录是 VBox
您可以通过输入 @FXML private VBox firstTab
来包含该根目录
关于JavaFX TabPane - 多个 Controller 和多个 FXML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48190678/
我遇到了一个非常奇怪的问题,即 TabPane 的选项卡按钮位于左侧。该问题仅在应用程序运行时出现,但在 SceneBuilder (2.0) 预览中不存在。 每次选定的 Tab 更改(通过用户单击或
我有一个带有可变复选框列表的阶段。当列表更改时,舞台必须调整大小。这在大多数情况下都可以正常工作,在将所有复选框添加到 VBox 之后,您然后调用 stage.sizeToScene() 并且舞台相应
如果您在没有足够空间显示所有选项卡时尝试对选项卡进行排序,JavaFX TabPane 会出现非常奇怪的行为。 更准确地说,应该显示包含所有选项卡的下拉列表的选项卡选择按钮(选项卡 Pane 标题右侧
使用 JavaFX 2.2 我有一个窗口,它主要由一个带有 4 个选项卡的 TabPane 组成。用户可能会更改任何选项卡中显示的数据,如果他们这样做,我想确保他们在保存/取消/更新数据之前不会离开该
下面是我的带有 TabPane 的 GridPane 代码。 TabPane 中有 2 个选项卡。 当我在 SceneBuilder 上单击预览时,选项卡不会在单击选项卡头时切换。
我有一个包含一些内容的 Tab:ScrollBar 和其他内容。 ScrollBar 具有键的事件处理程序:left 和 right。 但是如果我按下这些按钮,Tabs 就会切换,因为 TabPane
我需要在 Ctrl-Tab 和 Ctrl-Shift-Tab 上切换标签。但它仅在 TabPane 处于焦点上 时才有效。我有带有 setContent(textArea) 的选项卡。当 textAr
我注意到,在 TabPane 中添加和删除选项卡时,它无法匹配基础列表中选项卡顺序的位置。仅当至少一个选项卡因父项的宽度而完全隐藏时才会发生这种情况。下面是一些复制问题的代码: public clas
当我在选项卡 Pane 中添加一行时,该行的内容似乎具有跨选项卡 Pane 边缘边界的负边距。 如何在选项卡 Pane 中添加行(和列)? 下面是我的 HTML: Profil/Virksomhed
我正在尝试使用 fxml 添加一个新选项卡。 我已经在 tabPane 中添加了标签。 int numTabs = tabPane.getTabs().size(); Tab tab = new Ta
我在 ScrollPane 内的 Tabpane 内有一个 BorderPane。如果我删除 TabPane 并将 BorderPane 作为 ScrollPane 的内容,ScrollPane.Sc
我想要一个包含多个选项卡的 TabPane,每个选项卡都有不同的上下文菜单。 在 TabPane 上设置 ContextMenu 显然会导致使用相同的 ContextMenu,无论选择哪个选项卡。我尝
我有一个 javafx 应用程序,可以在滚动 Pane 中显示内容。此内容包括一个 TabPane。在选项卡内,有一个 VBox,其中包含可以根据用户交互更改高度的小部件,特别是: 显示更多行的表格
在我的 JavaFX 应用程序中,我有一个 TabPane在 TitledPane 。 TabPane内是 VBox其中包括一个按钮,可增加 VBox 中的元素数量(因此, VBox 的高度)。 但是
我的 TabPane 似乎只水平填充它的宽度,而不是垂直填充。我现在的解决方法是这样做: stage.getScene().heightProperty().addListener(new C
在我的 GUI 中,我尝试显示一个包含其他元素的 TabPane。 当调用特定场景的初始化方法时,我可以将所需的数据添加到第一个Tab中。 如何访问第二个并在那里添加数据?` 当您在单个选项卡之间切换
我有一个网络工具,用户可以在其中动态创建和删除多个选项卡式对象(可能很多),我正在使用 Google Closure TabPane 并且一切正常,除了事实是每次创建 TabPane 实例都会添加以下
JavaFX 8 中是否有一种方法可以将按钮放入 TabPane 中,如下面的模型所示?如果可能的话,我只想使用 FXML 文件。 最佳答案 看完“Add Buttons to Tabs and Ta
我在 JavaFX TabPane 中发现了一个小错误,正在寻找解决方法。我正在运行 JavaFX 13.0.1。 它是如何发生的: TabPane 的 DragPolicy 必须设置为 TabPan
你好,我如何在JavaFX中添加一个窗口,当我将它作为选项卡拖到选项卡上并再次双击以再次将其释放为窗口时? 例如 Firefox 或 Chrome 中的选项卡。双击以获取一个新窗口,然后将其拖到上方以
我是一名优秀的程序员,十分优秀!