怎么实现菜单项的事件?
这是本菜鸟的代码大神们看看打开、保存和退出怎么不对啊!package Map;--------------------编程问答-------------------- 啊,问题描述的有点模糊,再仔细说一遍:就是菜单项里面的打开、保存和退出功能怎样实现,我写的代码怎么运行出来三个菜单项都是一个功能,求支招@! --------------------编程问答-------------------- 咋没人回答呢 --------------------编程问答-------------------- 你最后的判断是永真
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.filechooser.FileNameExtensionFilter;
public class NumberAnalysis extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JMenuBar jJMenuBar = null;
private JMenu jMenu = null;
private JMenu jMenu1 = null;
private JMenu jMenu2 = null;
private JMenu jMenu3 = null;
private JMenuItem jMenuItem = null;
private JMenuItem jMenuItem1 = null;
private JMenuItem jMenuItem2 = null;
ItemHandler itemHandler = new ItemHandler();
static JFileChooser fc = new JFileChooser();
static FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
static {fc.setFileFilter(filter);}
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.add(getJMenu());
jJMenuBar.add(getJMenu1());
jJMenuBar.add(getJMenu2());
jJMenuBar.add(getJMenu3());
}
return jJMenuBar;
}
private JMenu getJMenu() {
if (jMenu == null) {
jMenu = new JMenu();
jMenu.setText("文件");
jMenu.add(getJMenuItem());
jMenu.add(getJMenuItem1());
jMenu.add(getJMenuItem2());
}
return jMenu;
}
private JMenu getJMenu1() {
if (jMenu1 == null) {
jMenu1 = new JMenu();
jMenu1.setText("视图");
}
return jMenu1;
}
private JMenu getJMenu2() {
if (jMenu2 == null) {
jMenu2 = new JMenu();
jMenu2.setText("工具");
}
return jMenu2;
}
private JMenu getJMenu3() {
if (jMenu3 == null) {
jMenu3 = new JMenu();
jMenu3.setText("帮助");
}
return jMenu3;
}
private JMenuItem getJMenuItem() {
if (jMenuItem == null) {
jMenuItem = new JMenuItem();
jMenuItem.setText("打开");
jMenuItem.addActionListener(itemHandler);
}
return jMenuItem;
}
private JMenuItem getJMenuItem1() {
if (jMenuItem1 == null) {
jMenuItem1 = new JMenuItem();
jMenuItem1.setText("保存");
jMenuItem1.addActionListener(itemHandler);
}
return jMenuItem1;
}
private JMenuItem getJMenuItem2() {
if (jMenuItem2 == null) {
jMenuItem2 = new JMenuItem();
jMenuItem2.setText("退出");
jMenuItem2.addActionListener(itemHandler);
}
return jMenuItem2;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
NumberAnalysis thisClass = new NumberAnalysis();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
public NumberAnalysis() {
super();
initialize();
}
private void initialize() {
this.setSize(300, 200);
this.setJMenuBar(getJJMenuBar());
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
}
return jContentPane;
}
class ItemHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(jMenuItem2.getText()=="退出"){
System.exit(0);
}
if(jMenuItem.getText()=="打开"){
fc.showOpenDialog(null);
}
if(jMenuItem1.getText()=="保存"){
fc.showSaveDialog(null);
}
}
}
}
use
e.getSource()... --------------------编程问答-------------------- 不对啊,按你说的做了直接是运行按菜单项没反应啊! --------------------编程问答--------------------
class ItemHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Object o = e.getSource();
if (jMenuItem2 == o)
System.exit(0);
else if (jMenuItem == o)
fc.showOpenDialog(null);
else if (jMenuItem1 == o)
fc.showSaveDialog(null);
}
}
补充:Java , Java EE