我有一个Foo类,它仅加载FXML并创建场景。
在FXML中,我将控制器设置为FooController(fx:controller="FooController"
)
然后添加一个MenuButton:
<MenuButton fx:id="menuButton" layoutX="264.1875" layoutY="146.5" mnemonicParsing="false" text="MenuButton" />
我尝试在FooController中设置menuButton:
public class FooController implements Initializable{
@FXML
final MenuButton menuButton = new MenuButton("Modalities");
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
final ObservableList<CheckMenuItem> listFilter = FXCollections.observableArrayList();
final MenuButton menuButton = new MenuButton("Modalities");
CheckMenuItem item1 = new CheckMenuItem("T1");
CheckMenuItem item2 = new CheckMenuItem("T1C");
CheckMenuItem item3 = new CheckMenuItem("T2");
listFilter.addAll(item, item2, item3);
menuButton.getItems().addAll(listFilter);
menuButton.setId("menuButton");
}
}
但是,尽管为MenuButton设置了所有内容,但它并未在GUI中显示任何CheckMenuItems。
如何在FXML中定义的menuButton中加载这些项目?
切勿 将@FXML
初始化值设置为新值。
在您发布的代码中,您执行了 两次 ,而您根本不应该这样做。
FXMLLoader将在其实例化的组件层次结构中创建新项目,并将对这些新项目的引用注入到您的控制器中。如果随后将这些引用设置为新值,则除非在其中专门添加了新值,否则新值将永远不会包含在显示的组件层次结构中,这会破坏首先使用FXML的目的,因为它会忽略FXML中定义的内容。文件。
您应该拥有的是:
public class FooController {
@FXML
MenuButton menuButton;
public void initialize() {
menuButton.getItems().addAll(
FXCollections.observableArrayList(
new CheckMenuItem("T1"),
new CheckMenuItem("T1C"),
new CheckMenuItem("T2")
)
);
}
}
还要注意,如果上述代码中的CheckMenuItems是静态列表,而不是动态列表,则只需在FXML文档中全部定义它们,而不用在代码中创建它们。
注意: 这是一个重复的问题,之前曾被问过(不是确切的问题,而是实质问题),但是我的Google技能无法挖掘出某些重复的问题。
我尝试在我的JavaFX应用程序中实现一个TreeView。但不幸的是,没有项目显示,但我找不到一个问题。我搜索了一些例子,并像他们一样做了。 这是我的控制器代码: 我的FXML代码:
本文向大家介绍如何在JavaFX中创建MenuButton?,包括了如何在JavaFX中创建MenuButton?的使用技巧和注意事项,需要的朋友参考一下 一个菜单 是呈现给用户的选项或命令的列表,通常菜单中包含的执行某些操作的项目。菜单的内容称为菜单项,菜单栏包含多个菜单。 通常,按钮在用户界面应用程序中进行控制,单击该按钮将执行相应的操作。 MenuButton是一个简单的按钮,在单击它时显示
我有这个模型: 我试图有一个表行[String-String-ComboBox with Strings]。所以我像这样设置表格: 但结果是,我在第三列中没有看到任何组合框应该包含值“1”和“3”。相反,我看到的是: 我缺少什么来显示组合框?谢谢
我正在开发一些学术性的JavaFX桌面应用程序。在创建注册表单时,我需要使用combobox/choicebox,但在这一步中我遇到了几个问题。组合框没有显示任何项目。我尝试了许多在堆栈溢出上找到的修复方法,但似乎都不起作用。我在分享我的主要观点。java控制器代码和我的FXML代码放在一边。 Main.java Controller.java FXML文件
我想在JavaFX的ImageView中显示图像。图像应该从SQLite数据库中获取,并在场景加载时显示。我使用以下代码片段从数据库获取代码,并在之前创建的ImageView中显示它。但是图像没有按预期显示。我做错了吗?P. S.我测试了改变路径在两个和当读取文件从目录到。但似乎没有什么奏效。但是当我手动将一个图像文件放在src目录中并尝试读取它时,它就像一个魅力。但是我想展示一张从数据库中提取的
问题内容: 开发需要显示pdf 的桌面应用程序。我了解到(当前版本)不支持pdf查看/显示,我也了解到。 现在,问题: 是否有任何外部组件或库可以在JavaFX中查看pdf?它应该是一个免费软件。 (如果必须使用)如何将其嵌入到我的应用程序中。 问题答案: JPedalFX示例代码和用法 JPedalFX下载提供了有关使用JPedalFX的示例代码。 我有点of脚,但是我只是在这里粘贴从JPeda