2015-05-19 2 views
0

Мы получили проект с открытым исходным кодом Jmjrst и должны настроить и немного поработать с ним. Теперь у нас никогда не было ни одного материала JMenu, JMenuItem и Listener, так что это довольно запутанно для меня.Меню создания JMenu с различным прослушивателем

Я уже получил свой новый MenuTab и работает.

Моя проблема заключается в том, что моя задача говорит следующее:

Каждый модуль должен иметь возможность быть запущен и настроен.

Конфигурация должна быть реализована только в том случае, если плагин настраивается.

(перевод текста)

Мы получили метод для проверки, если он настраивается.

Это мой код прямо сейчас:

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()) установлен неправильно, потому что каждый мензунд должен быть доступен. Но idk, как управлять тем, что происходит, когда нажата кнопка меню (плагин), и как отделить выполнение и настройку.

Edit: каждый плагин имеет следующие методы: run() и configure() но как добавить их в меню и я в состоянии отделить их?

Edit2:

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

Ваш код и переменные запутанным. что в плагинах коллекции есть menuItems? или объект plugIn (из цикла foreach)? , .. можете ли вы предоставить фактический фрагмент кода? –

+0

@Sendi_t Я отредактировал мой вопрос. Пожалуйста, скажите мне, разъяснил ли это это или нет. – NhatNienne

+0

Если я правильно понимаю ... у вас есть два действия: 1.) плагин-конфигурация 2.) run-plugin ..... пытаются выяснить способ различать эти два? и когда выполнять какое действие? –

ответ

1

Это будет зависеть от вашего дизайна пользовательского интерфейса, вы можете иметь subMenuItems под каждым plugin-- один для сказать "конфигурации" и другие для "выполнения/Run",

У вас может быть один элемент меню. У вас есть теперь, а затем слушатель может всплывать в диалоговом окне, чтобы пользователь мог выбрать config/execute - это не лучший вариант, так как пользователям придется иметь дело с диалогом каждый раз, когда они нажимают плагин.

Другой способ, которым я могу думать, иметь верхний уровень MENUITEM для «конфигурации» и поэтому пользователи ясно видеть, если они хотят, чтобы настроить или изменить, они должны пойти в меню «Конфигурация»

SubMenu элемент является MENUITEM сам

//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

+0

хорошо, можете ли вы рассказать мне, как я могу добавить subMenuItems?Я думаю, что я собираюсь пойти на это, потому что, если плагин настраивается, вы можете выбрать, хотите ли вы его настроить или запустить. если он не конфигурируется, а затем нажимает, он будет запускать его – NhatNienne

+0

см. обновления в ответе –

Смежные вопросы