【发布时间】:2021-01-03 19:01:03
【问题描述】:
我正在开发一个小型应用程序,但在创建菜单栏时遇到了问题。 这是我的启动方法:
public void start(@SuppressWarnings("exports") Stage prymaryStage) throws Exception {
// Stats menu
Menu statsMenu = new Menu("Stats");
// PairName menu
Menu pairNameMenu = new Menu("Choose pair");
// Stats Menu items
MenuItem gStats = new MenuItem("General stats");
// Pair list
ArrayList<String> pairNameList = DatabaseMethods.returnPairNameList();
// PairName items (probably i will have to change)
for (String item : pairNameList) {
pairNameMenu.getItems().add(new MenuItem(item));
}
statsMenu.getItems().addAll(gStats, pairNameMenu);
// Main menu bar
MenuBar menuBar = new MenuBar();
menuBar.getMenus().addAll(statsMenu);
// BorderPane settings
BorderPane borderPane = new BorderPane();
borderPane.setTop(menuBar);
Scene scene = new Scene(borderPane, 1200, 800);
prymaryStage.setTitle("English minimal pair training");
prymaryStage.setScene(scene);
prymaryStage.show();
}
我的问题出在这部分代码中:
ArrayList<String> pairNameList = DatabaseMethods.returnPairNameList();
// PairName items (probably i will have to change)
for (String item : pairNameList) {
pairNameMenu.getItems().add(new MenuItem(item));
}
我试图从 ArrayList 创建子菜单的项目。该数据从数据库中获取,并以 ArrayList 的形式返回。除了 pairNameMenu.getItems().add(new MenuItem(item)); 之外,我没有找到任何其他方法来执行菜单项。在 for 循环中。
现在我想处理项目中的点击,但我不知道该怎么做。我试过 .setOnAction 但 Eclipse 说 .add(new MenuItem(item)) 在这种情况下不能使用并推荐 .addAll 并且同样的情况发生了,Eclipse 说这是一个错误并推荐 .add 我尝试在 new MenuItem(item) 之后添加此代码
.addEventHandler(new EventHandler<ActionEvent>() {
public void handle(ActionEvent even) {
}
})
但它也不起作用。
我对 Java 和 JavaFX 很陌生,这是我的第一个项目,如果这是一个非常基本的问题,非常抱歉。
感谢您的宝贵时间
【问题讨论】: