这是本人编的一个程序 有一个问题就是按界面上的按钮"EXIT SYSTEM"没有响应(按照我的设计应该有个退出对话框) 但点右键里的"EXIT SYSTEM"却很正常。不知道我说清楚了没。
程序没有问题 可以直接运行
package personalfiancesystem;/********引进java类库**********/
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.text.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.io.*;
import javax.swing.plaf.metal.*;
import java.awt.PrintJob.*;
/************引进工程文件*******************/
import personalfiancesystem.NewAccount;public class PersonalFianceSystem extends JFrame implements ActionListener,
        ItemListener {
    /************变量声明****************/
    //创建面板
    private JPanel menupanel = new JPanel();
    private JPanel statuspanel = new JPanel();
    //虚拟桌面
    JDesktopPane mydesk = new JDesktopPane();
    //界面按钮
    private JButton btnew, btmyac, btexit;
    //右键菜单
    private JPopupMenu mypop = new JPopupMenu();
    //右键菜单项
    private JMenuItem minew, mimyac, miexit;
    //标签
    private JLabel author, timedate;
    //获取时间与日期
    private java.util.Date currdate = new Date();
    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd号HH时mm分",
            Locale.getDefault());
    private String d = sdf.format(currdate);
    /**********构造函数************/
    public PersonalFianceSystem() {
        //窗口名称
        super("PersonalFianceSystem");
        //窗口大小
        setSize(400, 400);
        //窗口出现位置
        setLocation(0, 0);
        //窗口退出
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                quitapp();
            }
        }
        );
      
       
       
        //面板布局
        mydesk.putClientProperty ("JDesktopPane.dragMode", "outline");
        getContentPane().add(menupanel, new BorderLayout().NORTH);
        getContentPane().add(mydesk, new BorderLayout().CENTER);
        getContentPane().add(statuspanel, new BorderLayout().SOUTH);        //添加按钮
        JButton btnew = new JButton("NEW ACCOUNT");
        btnew.setToolTipText("创建账户");
        btnew.addActionListener(this);        JButton btmyac = new JButton("MY ACCOUNT");
        btmyac.setToolTipText("我的账户");
        btmyac.addActionListener(this);        JButton btexit = new JButton("EXIT SYSTEM");
        btexit.setToolTipText("退出系统");
        btexit.addActionListener(this);
        menupanel.setLayout(new FlowLayout());
         menupanel.add(btnew);
         menupanel.add(btmyac);
        menupanel.add(btexit);
                //添加标签
        JLabel author = new JLabel("XI'AN.ETU.CES@copyright");
       
        JLabel timedate = new JLabel("" + d);
        timedate.setToolTipText("当前时间与日期");
        statuspanel.setLayout(new BorderLayout());
        statuspanel.add(author, BorderLayout.WEST);
        statuspanel.add(timedate, BorderLayout.EAST);
        //创建右键菜单项
        minew = new JMenuItem("CREAT MY ACCOUNT");
        minew.addActionListener(this);
        mimyac = new JMenuItem("MY ACCOUNT");
        mimyac.addActionListener(this);
        miexit = new JMenuItem("EXIT SYSTEM");
        miexit.addActionListener(this)
       ;
        //加入右键
        mypop.add(minew);
        mypop.addSeparator();
        mypop.add(mimyac);
        mypop.addSeparator();
        mypop.add(miexit);
        //右键响应
        addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent me) {
                checkMouseTrigger(me);
            }            public void mouseReleased(MouseEvent me) {
                checkMouseTrigger(me);
            }            private void checkMouseTrigger(MouseEvent me) {
                if (me.isPopupTrigger()) {
                    mypop.show(me.getComponent(), me.getX(), me.getY());
                }
            }
        }
        );
        //显示窗口
        setVisible(true);
    }    //动作监听
    public void actionPerformed(ActionEvent ae) {
        Object obj = ae.getSource();
        if (obj == miexit||obj==btexit) {
            quitapp();        } else if (obj == btnew || obj == minew) {
            NewAccount newAcc = new NewAccount();
            mydesk.add(newAcc);
        }
    }    public void itemStateChanged(ItemEvent ie) {    }//退出处理函数
    private void quitapp() {
        try {
            int reply = JOptionPane.showConfirmDialog(this,
                    "                   Are you sure to exit\n         From PersonalFianceSystem?",
                    "PersonalFianceSystem     -     Exit",
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.PLAIN_MESSAGE
                        );
            if (reply == JOptionPane.YES_OPTION) {
                setVisible(false);
                dispose();
                System.exit(0);            } else if (reply == JOptionPane.NO_OPTION) {
                setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);            }
        } catch (Exception ex) {        }    }    /*********主函数**************/
    public static void main(String[] args) {
        PersonalFianceSystem main = new PersonalFianceSystem();
    }
}