Java 是否将ActionListener添加到JMenuItem Netbeans?
我在Netbeans中有一个GUI。。我唯一的问题是将事件添加到我的JMenuItems中。我当前正在加载一个字符串[]作为我的菜单列表,为.length添加一个新的JMenuItemJava 是否将ActionListener添加到JMenuItem Netbeans?,java,swing,netbeans,actionlistener,jmenuitem,Java,Swing,Netbeans,Actionlistener,Jmenuitem,我在Netbeans中有一个GUI。。我唯一的问题是将事件添加到我的JMenuItems中。我当前正在加载一个字符串[]作为我的菜单列表,为.length添加一个新的JMenuItem 然后,我的问题是如何为JMenuItem添加操作事件。。我无法在GUI窗口中设置事件,因为在加载游戏名之前没有创建该项。您必须将每个菜单项传递给操作侦听器。一种可能性是让类实现ActionListener接口并定义actionPerformed方法 在本例中,类的实例还充当ActionListener。对于简单的
然后,我的问题是如何为JMenuItem添加操作事件。。我无法在GUI窗口中设置事件,因为在加载游戏名之前没有创建该项。您必须将每个菜单项传递给操作侦听器。一种可能性是让类实现ActionListener接口并定义actionPerformed方法 在本例中,类的实例还充当ActionListener。对于简单的事情,还可以使用匿名类
private void addToGamePanel(){
String[] gameNames = con.getGameNames();
for (int i = 0; i < gameNames.length; i++) {
JMenuItem item = new JMenuItem(gameNames[i])
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem menuItem = (JMenuItem) e.getSource();
// do something with your menu item
String text = menuItem.getText();
}
});
jMenu2.add(item);
}
}
如果你有一些更高级的需求,你可以考虑定义一个单独的ActualListor或者更好的动作,看看:
你想登记哪些事件侦听器?但我只是想知道如何将事件/操作添加到JMenuItems中。。一个朋友说了一些关于一个监听器的事情,但我真的不知道怎么做..你正在为字符串[]gameNames中的每个项目添加一个菜单项。您是否也有一个事件侦听器数组?或者他们应该使用同一个听众吗?我猜一个听众就足够了。。它应该只返回被剪辑的项目的名称…问题是它在GUI主界面中。。。allready实现了java.swingConsider,事先向问题中添加了这样的相关信息。什么问题,是否有错误消息?你的意思是一个主要的方法?试一下第二个问题,如果有帮助的话,请投票赞成,并考虑接受它,如果它解决了你的问题。请参阅:您实际上正在创建ActionListener的匿名实例,如果您实现actionPerformed方法,就可以了。class YourClass implements ActionListener {
[...]
private void addToGamePanel(){
String[] gameNames = con.getGameNames();
for (int i = 0; i < gameNames.length; i++) {
JMenuItem item = new JMenuItem(gameNames[i])
item.addActionListener(this);
jMenu2.add(item);
}
}
public void actionPerformed(ActionEvent e) {
JMenuItem menuItem = (JMenuItem)(e.getSource());
// do something with your menu item
String text = menuItem.getText();
}
}
private void addToGamePanel(){
String[] gameNames = con.getGameNames();
for (int i = 0; i < gameNames.length; i++) {
JMenuItem item = new JMenuItem(gameNames[i])
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem menuItem = (JMenuItem) e.getSource();
// do something with your menu item
String text = menuItem.getText();
}
});
jMenu2.add(item);
}
}