在单独的类中使用ActionListener

时间:2013-12-28 21:15:13

标签: java class actionlistener

我正在尝试为动作侦听器创建一个单独的类,但我不确定如何将动作侦听器添加到菜单项。我一直在尝试一些不同的东西,但没有人让消息对话框出现。我将动作监听器放在一个单独的类中,并将菜单项放在一个单独的类中,我试图让它们一起工作。

public class HangmanView {
    Listener listener = new Listener();

    public JMenuItem getMenuItem() {
        JMenuItem menuItem = new JMenuItem("Developer", KeyEvent.VK_T);
        menuItem.addActionListener(new Listener());
        return menuItem;
    }

    public JMenuBar menuBar() {

        JMenuBar menuBar = new JMenuBar();
        JMenu menu = new JMenu("File");
        menuBar.add(menu);
        menu.add(getMenuItem());
        return menuBar;
    }

另一类:

public class Listener {
    JFrame dialogFrame = new JFrame();

    public JFrame menuItemListener() {
        HangmanView hangmanView = new HangmanView();

        hangmanView.getMenuItem().addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {// right click key
                JOptionPane.showMessageDialog(dialogFrame, "Developer: Joe"
                        , "Developer",
                        JOptionPane.INFORMATION_MESSAGE);
            }// end actionPerformed method
        });
        return dialogFrame;

    }
}

1 个答案:

答案 0 :(得分:2)

你似乎在课堂,界面等方面遇到很多困惑,所以实际上很难知道从哪里开始!

首先,你的Listener类需要实现ActionListener。

然后您需要以与现有相同的方式将其添加到HangmanView类中:

public class Listener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {// right click key
        JOptionPane.showMessageDialog(dialogFrame, "Developer: Joe"
                , "Developer",
                JOptionPane.INFORMATION_MESSAGE);
    }// end actionPerformed method
});

就是这样,你完成了......