标题:为什么窗口右上角的X关闭按钮无效?
只看楼主
hhl0006
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2015-3-27
结帖率:30%
已结贴  问题点数:20 回复次数:8 
为什么窗口右上角的X关闭按钮无效?
import java.awt.*;
import java.awt.event.*;

public class ct extends Frame implements ActionListener
{

 static ct frm=new ct();
 static MenuBar mb=new MenuBar();
 static Menu menu0=new Menu("人事管理");
 static Menu menu1=new Menu("待遇管理");
 static Menu menu2=new Menu("系统维护");
 static Menu menu3=new Menu("用户管理");
 static Menu menu4=new Menu("帮助");

 static MenuItem mi0_1=new Menu("档案管理");
 static MenuItem mi0_2=new Menu("考勤管理");
 static MenuItem mi0_3=new Menu("奖惩管理");
 static MenuItem mi0_4=new Menu("培训管理");
 static MenuItem mi0_5=new MenuItem("关闭");
 
 static MenuItem mi1_1=new Menu("账套管理");
 static MenuItem mi1_2=new Menu("人员设置");
 static MenuItem mi1_3=new Menu("统计报表");
 
 static MenuItem mi2_1=new Menu("企业架构");
 static MenuItem mi2_2=new Menu("基本资料");
 static MenuItem mi2_3=new Menu("初始化系统");

 static MenuItem mi3_1=new Menu("新增用户");
 static MenuItem mi3_2=new Menu("选项");
 
 static MenuItem mi4_1=new Menu("帮助主题");
 static MenuItem mi4_2=new Menu("关于系统");

 public static void initGUI()
 {
  frm.setTitle("人力资源管理系统");
  mb.add(menu0);
  mb.add(menu1);
  mb.add(menu2);
  mb.add(menu3);
  mb.add(menu4);
  menu0.add(mi0_1);
  menu0.add(mi0_2);
  menu0.add(mi0_3);
  menu0.add(mi0_4);
  menu0.add(mi0_5);
  menu1.add(mi1_1);
  menu1.add(mi1_2);
  menu1.add(mi1_3);
  menu2.add(mi2_1);
  menu2.add(mi2_2);
  menu2.add(mi2_3);
  menu3.add(mi3_1);
  menu3.add(mi3_2);
  menu4.add(mi4_1);
  menu4.add(mi4_2);
  mi0_1.addActionListener(frm);
  mi0_2.addActionListener(frm);
  mi0_3.addActionListener(frm);
  mi0_4.addActionListener(frm);
  mi0_5.addActionListener(frm);
  mi1_1.addActionListener(frm);
  mi1_2.addActionListener(frm);
  mi1_3.addActionListener(frm);
  mi2_1.addActionListener(frm);
  mi2_2.addActionListener(frm);
  mi2_3.addActionListener(frm);
  mi3_1.addActionListener(frm);
  mi3_2.addActionListener(frm);
  mi4_1.addActionListener(frm);
  mi4_2.addActionListener(frm);
  frm.setSize(1366,740);
  frm.setBackground(Color.white);
  frm.setMenuBar(mb);
  frm.setVisible(true);
 }

 public static void main(String args[])
 {
  initGUI();
 }
 public void actionPerformed(ActionEvent e)
 {
  MenuItem mi=(MenuItem)e.getSource();
  if(mi==mi0_5)
     System.exit(0);
 }
 public void windowClosing(WindowEvent e)
 {
  frm=(ct)e.getSource();
  frm.setVisible(false);
  frm.dispose();
  System.exit(0);
 }
}
搜索更多相关主题的帖子: 档案管理 public import 用户 
2016-05-13 08:20
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:20 
程序代码:
package test1;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Start extends JFrame implements ActionListener
{
    private static final long serialVersionUID = 1L;
    static Start frm=new Start();
    static JMenuBar mb=new JMenuBar();
    static JMenu[] JMenu=new JMenu[]{new JMenu("人事管理"),
    new JMenu("待遇管理"),new JMenu("系统维护"),
    new JMenu("用户管理"),new JMenu("帮助")};
    static JMenuItem[][] mi=new JMenuItem[][]{
        
        new JMenuItem[]{new JMenu("档案管理"),new JMenu("考勤管理"),
        new JMenu("奖惩管理"),new JMenu("培训管理"),
        new JMenuItem("关闭")},
    
        new JMenuItem[]{
        new JMenu("账套管理"),
        new JMenu("人员设置"),new JMenu("统计报表")},
    
        new JMenuItem[]{
        new JMenu("企业架构"),new JMenu("基本资料"),
        new JMenu("初始化系统")},
    
        new JMenuItem[]{new JMenu("新增用户"),
        new JMenu("选项")},
        
        new JMenuItem[]{new JMenu("帮助主题"),
        new JMenu("关于系统")}
    };
    
    public static void initGUI()
    {
        frm.setTitle("人力资源管理系统");
        for(int i=0;i<JMenu.length;i++){
            mb.add(JMenu[i]);
            for(JMenuItem mit:mi[i]){
                JMenu[i].add(mit);
                mit.addActionListener(frm);
            }
        }
        frm.setSize(1366,740);
        frm.setBackground(Color.white);
        frm.setJMenuBar(mb);
        frm.setVisible(true);
    }

    public static void main(String args[])
    {
        initGUI();
    }
    public void actionPerformed(ActionEvent e)
    {
        JMenuItem m=(JMenuItem)e.getSource();
        if(m==mi[0][4])
            System.exit(0); 
    }
    public void windowClosing(WindowEvent e)
    {
        frm.setVisible(false);
        frm.dispose();
        System.exit(0);
    }
}

剑栈风樯各苦辛,别时冰雪到时春
2016-05-13 17:46
hhl0006
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2015-3-27
得分:0 
回复 2楼 林月儿
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\admin>d:

D:\>cd 测试

D:\测试>javac test.java
test.java:11: 错误: 类Start是公共的, 应在名为 Start.java 的文件中声明
public class Start extends JFrame implements ActionListener
       ^
1 个错误

D:\测试>
2016-05-20 08:23
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
。。。你不是吧,类名和文件名要一致的,要么test.java改成Start.java
要么Start改成test

剑栈风樯各苦辛,别时冰雪到时春
2016-05-21 13:25
hhl0006
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2015-3-27
得分:0 
谢谢!我糊涂。但点击那X按钮关闭后,shell界面却无法继续输入文字,为什么?
2016-05-22 08:12
hhl0006
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2015-3-27
得分:0 
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\admin>d:

D:\>cd 测试

D:\测试>java Start
2016-05-22 08:14
zs127
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-5-30
得分:0 
直接添加一句语句
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2016-05-30 16:00
hhl0006
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2015-3-27
得分:0 
还是不行。
2016-06-05 08:07
hhl0006
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2015-3-27
得分:0 
已解决(添加窗口事件监听器)。谢谢!
2016-06-12 11:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464748-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.362665 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved