elan1986 发表于 2008-5-13 20:57

版主 帮帮忙啊 帮我看看这个问题 为什么我点退出不能退出 谢谢了啊

package lch;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;

public  class MenuDemo implements ActionListener,ItemListener
{
        JTextArea output;
        JScrollPane scrollpane;
        String newline="\n";
        public static JMenuItem exitItem;
       
        public JMenuBar createMenubar(){
                JMenuBar menubar;
                JMenu menu,submenu;
                JMenuItem menuItem;
                //JRadioButtonMenuItem rbMenuItem;
               
                menubar=new JMenuBar(); //定义菜单条
               
                //定义第一个菜单
                menu=new JMenu("登陆(A)");
                menu.setMnemonic(KeyEvent.VK_A);
                menubar.add(menu);
               
                //定义第一个菜单选项
                menuItem=new JMenuItem("管理员登陆(0)",KeyEvent.VK_0);
                //设置快捷建
                menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,ActionEvent.ALT_MASK));
                //添加监听
                menuItem.addActionListener(this);
                menu.add(menuItem);
               
                //定义第二个菜单选项
                menuItem=new JMenuItem("新建管理员(B)");
                menuItem.setMnemonic(KeyEvent.VK_B);
                menuItem.addActionListener(this);
                menu.add(menuItem);
               
                menu.addSeparator();//添加分割符
               
                JMenuItem exitItem=new JMenuItem("退出(X)");
                exitItem.setMnemonic(KeyEvent.VK_X);
                exitItem.addActionListener(this);
                menu.add(exitItem);
               
                menu=new JMenu("功能(N)");
                menu.setMnemonic(KeyEvent.VK_N);
                menubar.add(menu);
               
               
                submenu=new JMenu("查询");
                //定义第一个子菜单
                menuItem=new JMenuItem("读者信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
       
                menuItem=new JMenuItem("图书信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
               
                menu.addSeparator();
               

                submenu=new JMenu("添加");
                menuItem=new JMenuItem("添加读者信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
                menuItem=new JMenuItem("添加图书信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
               
                menu.addSeparator();
               
                /*menuItem=new JMenuItem("删除读者");
                menuItem.addActionListener(this);
                menu.add(menuItem);*/
               
                submenu=new JMenu("删除");
                menuItem=new JMenuItem("删除读者信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
                menuItem=new JMenuItem("删除图书信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
                menu.addSeparator();
               
                /*menuItem=new JMenuItem("更新读者");
                menuItem.addActionListener(this);
                menu.add(menuItem);*/
               
                submenu=new JMenu("更新");
                menuItem=new JMenuItem("更新读者信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
                menuItem=new JMenuItem("更新图书信息");
                menuItem.addActionListener(this);
                submenu.add(menuItem);
                menu.add(submenu);
               
               
                menu=new JMenu("工具(T)");
                menu.setMnemonic(KeyEvent.VK_T);
                menubar.add(menu);
                menuItem=new JMenuItem("借书");
                menuItem.addActionListener(this);
                menu.add(menuItem);               
                menu.addSeparator();
                menuItem=new JMenuItem("还书");
                menuItem.addActionListener(this);
                menu.add(menuItem);
                menu.addSeparator();
                menuItem=new JMenuItem("罚款");
                menuItem.addActionListener(this);
                menu.add(menuItem);
               
               
                menu=new JMenu("读者留言(Q)");
                submenu.setMnemonic(KeyEvent.VK_Q);
                menubar.add(menu);
                menuItem=new JMenuItem("读者留言");
                menuItem.addActionListener(this);
                menu.add(menuItem);
               
                menu=new JMenu("关于(H)");
                submenu.setMnemonic(KeyEvent.VK_H);
                menubar.add(menu);       
                menuItem=new JMenuItem("联系作者");
                menuItem.addActionListener(this);
                menu.add(menuItem);
                menu.addSeparator();
                menuItem=new JMenuItem("关于图书管理系统");
                menuItem.addActionListener(this);
                menu.add(menuItem);
                return menubar;
               
        }
       
        //构建面板
        public Container createContentPane(){
                JPanel contentPane=new JPanel(new BorderLayout());
                contentPane.setOpaque(true);
                //定义一个文本域
                output=new JTextArea(5,30);
                output.setEditable(false);
                scrollpane=new JScrollPane(output);
                //将文本域添加到面板中
                contentPane.add(scrollpane,BorderLayout.CENTER);
               
                return contentPane;
        }
        //构建弹出菜单
        public void createPopupMent(){
                JMenuItem menuItem;
               
                JPopupMenu popup=new JPopupMenu();
                  ImageIcon openicon = createImageIcon("images/Open16.gif");
                menuItem=new JMenuItem("打开文件",openicon);
                menuItem.addActionListener(this);
                popup.add(menuItem);
                ImageIcon saveicon = createImageIcon("images/Save16.gif");
                menuItem=new JMenuItem("保存文件",saveicon);
                menuItem.addActionListener(this);
                popup.add(menuItem);
               
                //添加一个监听给文本域 响应点击右键时响应
                MouseListener popupListener=new PopupListener(popup);
                output.addMouseListener(popupListener);
        }
       


        private ImageIcon createImageIcon(String string) {
                // TODO Auto-generated method stub
                return null;
        }

        //监听普通菜单事件
       
            public void actionPerformed(ActionEvent e){
                JMenuItem source=(JMenuItem)(e.getSource());
                /*String s="监测事件"+newline
                +"事件源:"+source.getText()
                +"(选择对象"+getClassName(source)+")";
                output.append(s+newline);*/
                if(source==exitItem)
                        System.exit(0);
        }  
       
       
       

       

        private String getClassName(JMenuItem source) {
                // TODO Auto-generated method stub
                return null;
        }

        public static void main(String[] args){
                        JFrame.setDefaultLookAndFeelDecorated(true);
                       
                        //创建一个窗体
                         JFrame frame = new JFrame("MenuDemo");
                         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                         
                         //创建菜单 并添加到面板中
                         MenuDemo demo=new MenuDemo();
                         frame.setJMenuBar(demo.createMenubar());
                         frame.setContentPane(demo.createContentPane());
                         
                         //生成弹出菜单
                         demo.createPopupMent();
                         
                         //显示窗体
                         frame.setSize(450,260);
                         frame.setVisible(true);
       
                }

        public void itemStateChanged(ItemEvent e) {
                // TODO Auto-generated method stub
               
        }
             }
        class PopupListener extends MouseAdapter{
                JPopupMenu popup;
               
                PopupListener(JPopupMenu popupMenu){
                        popup=popupMenu;
                }
               
                public void mousePressed(MouseEvent e){
                        maybeShowPopup(e);
                       
                }
               


                public void mouseReleased(MouseEvent e){
                        maybeShowPopup(e);
                }
                 private void maybeShowPopup(MouseEvent e) {
                    if (e.isPopupTrigger()) {
                        popup.show(e.getComponent(),
                                   e.getX(), e.getY());
        }
                 }
        }
       
       
为什么我点退出不能退出啊???

xiaoyu2006 发表于 2008-5-13 22:29

呵呵,再看看!

[[it] 本帖最后由 xiaoyu2006 于 2008-5-13 22:33 编辑 [/it]]

freish 发表于 2008-5-13 23:06

已经给你另外一个帖子回复了

页: [1]

编程论坛