gpt4 book ai didi

java - JMenu 使用不同的监听器生成菜单

转载 作者:行者123 更新时间:2023-12-01 11:31:40 25 4
gpt4 key购买 nike

我们获得了 Jmjrst 开源项目,应该对其进行一些配置和工作。现在我们从来没有任何 JMenu、JMenuItem 和 Listener 的东西,所以这对我来说非常困惑。

我已经实现了新的 MenuTab 并且正在运行。

我的问题是我的任务如下:

Every plugin should be able to be started and configured.

The configuration should only be implemented if the plugin is configurable.

(翻译文本)

我们有一个方法来检查它是否可配置。

这是我现在的代码:

    int length = pluginList.size();
int i = 1;
for (Plugins plugIn: pluginList) {
pluginMenuItem = new JMenuItem(plug.getMenuText());
if (plugIn.isConfigurable()) {
pluginMenuItem.addActionListener(new MenuListner(m, this));
}
if (i < length) {
pluginsMenu.addSeparator();
}
pluginsMenu.add(plugin);
i++;
}

newList 只是一个包含所有可用插件的列表。我认为我的if (plug.isConfigurable()) 设置不正确,因为每个菜单点都需要能够被单击。但我不知道如何管理单击菜单点(插件)时发生的情况以及如何分开运行和配置。

编辑:每个插件都有以下方法:run()configure()但如何将它们添加到菜单中并能够将它们分开?

编辑2:

Plugins ==== The Plugins which should be added to the Menu 
pluginsMenu ==== the JMenu Object
plugIn ==== the new JMenuButton Object

最佳答案

这取决于您的用户界面设计,您可以在每个插件下有 subMenuItems - 一个用于“配置”,另一个用于“执行/运行”,

你现在可以有一个菜单项,然后监听器可以弹出对话框让用户选择配置/执行——这不是最好的选择,因为用户每次单击插件时都必须处理对话框

我能想到的另一种方法是为“配置”设置一个顶级菜单项,这样用户就可以清楚地看到他们是否想要配置或更改他们必须进入“配置”菜单

子菜单项本身就是一个菜单项

//a submenu
pluginsMenu.addSeparator();
submenu = new JMenu("Plugin Name");

//add one submenuItem
menuItem = new JMenuItem("Config");
submenu.add(menuItem);

//add another submenuItem
menuItem = new JMenuItem("Run/Execute");
submenu.add(menuItem);

//add submenu to mainPluginMenu
pluginsMenu.add(submenu);

在此处查看实际代码 menu

关于java - JMenu 使用不同的监听器生成菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30332570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com