Я пытаюсь создать приложение GUI, но хочу, чтобы код был чистым и понятным. Это мое желание иметь меню с двумя меню, в которых есть меню, в котором есть JMenuItems. Следовательно, попытка пойти с циклом for. Я столкнулся с проблемой, что я не мог идентифицировать свои созданные JMenuItems, поэтому добавить слушателей к ним стало бы довольно сложно.Заполнение Java Menu с помощью циклов
Мой код выглядит следующим образом:
JMenuBar menubar = new JMenuBar;
JMenu theorie = new JMenu("Theorie");
String[] ChapterContainer = new String[] {"Hoofdstuk 1","Hoofdstuk 2","Hoofdstuk 3","Hoofdstuk 4","Hoofdstuk 5","Hoofdstuk 6","Hoofdstuk 7","Hoofdstuk 8","Hoofdstuk 9","Hoofdstuk 10"};
String[] ParContainer = new String[] {"Paragraaf 1","Paragraaf 2","Paragraaf 3","Paragraaf 4","Paragraaf 5"};
String[] ChapterVars = new String[] {"h1","h2","h3","h4","h5","h6","h7","h8","h9","h10"};
String[] ParVars = new String[] {"p1","p2","p3","p4","p5"};
for(int i = 0 ; i<ChapterVars.length ; i++){
JMenu ChapterVars[i] = new JMenu(ChapterContainer[i]);
for(int j = 0 ; j<ParVars.length ; j++){
JMenuItem ParVars[j] = new JMenuItem(ParContainer[j]);
// ActionListener code here
ChapterVars[i].add(ParVars[j]);
}
theorie.add(ChapterVars[i]);
}
menubar.add(theorie);
я буду об этом в правильном направлении?
Заранее благодарен!
Используйте 'Action's вместо этого, они самодостаточны единицы работы, см. [Как использовать действия] (http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html) для получения дополнительной информации. – MadProgrammer
Я не рекомендую его, но метод 'ActionEvent # getActionCommand' вернет текст кнопки (или' JMenuItem' в этом случае), если на кнопке не будет установлено свойство 'actionCommand'. – MadProgrammer
У вас есть ParVars, определяемый как массив String, а во внутреннем цикле попытайтесь установить parVars [j] как JMenuItem. это должно привести к ошибкам компиляции. – FredK