Я написал код, чтобы выполнить событие click на JMenuItem, но это не срабатывает, когда я отлаживаю. (Я знаю, что я не должен задавать эти вопросы в этом форуме, но я новичок в этом форуме)JMenuitem - click - action - Java
public class ClsMenu extends JMenuItem implements ActionListener {
JTextArea output;
JScrollPane scrollPane;
public ClsMenu(String text)
{
super(text);
addActionListener(this);
}
public JMenuBar createMenu()
{
JMenuBar menuBar;
JMenu menuFood,menuDrinks,menuParty;
JMenuItem foodItem;
menuBar=new JMenuBar();
menuFood=new JMenu("Food");
foodItem=new JMenuItem("Pizza");
menuFood.add(foodItem);
menuBar.add(menuFood);
return menuBar;
}
public void createGUIandShow()
{
JFrame frame = new JFrame("Restuarant");
frame.setJMenuBar(createMenu());
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("item clicked"+e.getActionCommand());
}
}
В этом вызове, я создал объект
public class ClsMenuDisp {
public static void main(String[] args) {
// TODO Auto-generated method stub
ClsMenu menu=new ClsMenu("testitem");
menu.createGUIandShow();
}
}
Объекты Swing GUI должны быть сконструированы и обработаны _only_ в [потоке отправки событий] (http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod
Обратите внимание, что все несоответствующие JSomething предназначены для _using_ (vs. extend). Или наоборот: если вы видите, что они расширяют их, существует высокая вероятность того, что вы сделаете что-то не так ;-) – kleopatra