我正在尝试为动作侦听器创建一个单独的类,但我不确定如何将动作侦听器添加到菜单项。我一直在尝试一些不同的东西,但没有人让消息对话框出现。我将动作监听器放在一个单独的类中,并将菜单项放在一个单独的类中,我试图让它们一起工作。
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;
}
}
答案 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
});
就是这样,你完成了......