用JBuilder 产生的一段代码,做一个“File"的菜单,“File"菜单项下只有一项“Exit",奇怪的是,我把System.exit(0);放在jMenu1_mouseClicked(MouseEvent e)函数中,运行程序,点击菜单“File",程序会退出,但放在jMenuItem1_mouseClicked(MouseEvent e)函数中,运行程序,点击菜单“Exit",程序不会退出,好像“Exit"菜单不能响应。刚刚学java,实在是不明白,哪位达人帮忙分析一下。
public class Frame1 extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
JMenuItem jMenuItem1 = new JMenuItem(); public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
this.setJMenuBar(jMenuBar1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jMenu1.setText("File");
jMenu1.addMouseListener(new Frame1_jMenu1_mouseAdapter(this));
jMenuItem1.setText("exit");
jMenuItem1.addMouseListener(new Frame1_jMenuItem1_mouseAdapter(this));
jMenuBar1.add(jMenu1);
jMenu1.add(jMenuItem1);
} public void jMenuItem1_mouseClicked(MouseEvent e) {
System.exit(0);
} public void jMenu1_mouseClicked(MouseEvent e) {
//System.exit(0);
}
}
class Frame1_jMenu1_mouseAdapter extends MouseAdapter {
private Frame1 adaptee;
Frame1_jMenu1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void mouseClicked(MouseEvent e) {
adaptee.jMenu1_mouseClicked(e);
}
}
class Frame1_jMenuItem1_mouseAdapter extends MouseAdapter {
private Frame1 adaptee;
Frame1_jMenuItem1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void mouseClicked(MouseEvent e) {
adaptee.jMenuItem1_mouseClicked(e);
}
}
public class Frame1 extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
JMenuItem jMenuItem1 = new JMenuItem(); public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
this.setJMenuBar(jMenuBar1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jMenu1.setText("File");
jMenu1.addMouseListener(new Frame1_jMenu1_mouseAdapter(this));
jMenuItem1.setText("exit");
jMenuItem1.addMouseListener(new Frame1_jMenuItem1_mouseAdapter(this));
jMenuBar1.add(jMenu1);
jMenu1.add(jMenuItem1);
} public void jMenuItem1_mouseClicked(MouseEvent e) {
System.exit(0);
} public void jMenu1_mouseClicked(MouseEvent e) {
//System.exit(0);
}
}
class Frame1_jMenu1_mouseAdapter extends MouseAdapter {
private Frame1 adaptee;
Frame1_jMenu1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void mouseClicked(MouseEvent e) {
adaptee.jMenu1_mouseClicked(e);
}
}
class Frame1_jMenuItem1_mouseAdapter extends MouseAdapter {
private Frame1 adaptee;
Frame1_jMenuItem1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void mouseClicked(MouseEvent e) {
adaptee.jMenuItem1_mouseClicked(e);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货