ActionListener()引用同一个对象

时间:2014-11-20 13:34:25

标签: java windowbuilder

我想在windowbuilder / java中创建动态菜单,所以我创建了Vector来保存JMenuItem,但是我遇到了ActionListener()如何引用同一个对象的问题。 因此,我如何访问引用Object执行ActionListener()的操作?

我的代码是

        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        JMenu mnNewMenu = new JMenu("File");
        menuBar.add(mnNewMenu);
        mnNewMenu.add(mntmNewMenuItem);
        Vector<JMenuItem> x=new Vector<JMenuItem>();
        for(Integer i=0;i<10;i++)
         {
        x.add(new JMenuItem(i.toString()));
        x.get(i).addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            System.out.println(this.getText());  //this should refer to the same object x.get(i)
            }
        });
        mnNewMenu.add(x.get(i));
         }

1 个答案:

答案 0 :(得分:4)

使用getSource获取对源组件的引用

JMenuItem menuItem = (JMenuItem) event.getSource();
String text = menuItem.getText();