JAVA GUI基础题目:怎么样才能是点击【帮助】里的【退出帮助】在弹出的窗口时,为要关闭这一个窗口,而不关闭菜单窗口和登陆界面的窗口?该怎么办啊 其他的不好的地方望帮我改正啊 import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.table.*;public  class windchill extends JFrame implements ActionListener
{  
  boolean flag=false,flag2=false;//表示判断的作用。
  protected JFrame frame,framejiance;
  protected JTextField textkehuhaoma,texthaoma,txtyh,txtmima,txt3,jTextField1;
  private JButton btnenter,btnderu,btnover,btncz;
  protected JLabel lbl,lbl2,lbl3,lblzhu,labelhaoma,labelkehuhaoma,lblyh,lblmima,lblx;
  private JPanel panel; 
  private RoundColorTable demo;
  public static void main(String[] args) 
  {
  windchill frame=new windchill();
       frame.setSize(500,547);
       frame.setTitle("红星汽车城服务系统");
       frame.createGUI();
       frame.setVisible(true);
  }
  private void createGUI() 
  {
 setDefaultCloseOperation(EXIT_ON_CLOSE);
 Container window=getContentPane();
 window.setBackground(Color.pink);
 window.setLayout(new FlowLayout());
 
 lbl =new JLabel();
 lbl.setText("红星汽车城服务区欢迎您的到来");
 lbl.setFont(new Font("隶书",Font.ROMAN_BASELINE,30));
 lbl.setLocation(35,0);
 lbl.setSize(550,68);
 lbl.setForeground(Color.blue);
 lbl.setHorizontalAlignment(JLabel.CENTER);
 window.add(lbl);
 
 lbl2=new JLabel();
 panel =new JPanel();  
 lbl2.setIcon(new ImageIcon("hxqcc2.JPG"));
 panel.setPreferredSize(new Dimension(443,407));
 panel.setBackground(Color.pink);
 panel.add(lbl2);
 window.add(panel);
 
 lbl =new JLabel();
 lbl.setText("welcome to hongxing 请先单击【检测】再【登入】");
 lbl.setFont(new Font("隶书",Font.CENTER_BASELINE,17));
 lbl.setLocation(50,20);
 lbl.setSize(500,50);
 lbl.setForeground(Color.blue);
 lbl.setHorizontalAlignment(JLabel.CENTER);
 window.add(lbl);
 
 btnderu=new JButton("登录");
 window.add(btnderu);
 btnderu.setHorizontalAlignment(JLabel.CENTER);
 btnderu.addActionListener(this);
  }
  public void actionPerformed(ActionEvent event) 
  {   
  Menul f = new  Menul();
  f.setSize(700,580);
  f.setVisible(true);
  }
}
class Menul extends JFrame 
{
 JMenu Menu =new JMenu("欢迎菜单服务");
 MenuBar mb1=new MenuBar();
 Menu wj =new Menu("文件");
 Menu wj2 =new Menu("打开文件");
 Menu wj3 =new Menu("退出系统");
 Menu bj =new Menu("编辑");
 Menu bj2 =new Menu("编辑文件");
 Menu ck =new Menu("查看");
 Menu bz2 =new Menu("帮助系统");
 Menu bz =new Menu("帮助");
 String[] flove= {"a","b","c","d","f","g","h","j"};
 MenuItem[] bjx= {new MenuItem("退出编辑")};
 MenuItem[] ckx= {new MenuItem("查看文件"), new MenuItem("退出查看")};
 MenuItem[] bzx= {new MenuItem("帮助文件"), new MenuItem("退出帮助")};
 CheckboxMenuItem[] wjxx= {new CheckboxMenuItem("文件内容"),new CheckboxMenuItem("文件格式")};
 CheckboxMenuItem[] bjxx= {new CheckboxMenuItem("文件更新"),new CheckboxMenuItem("文件改写")};
 CheckboxMenuItem[] bzxx= {new CheckboxMenuItem("文件查看"),new CheckboxMenuItem("文件更新")};
 Button btntype=new Button("转换菜单选项");
 
 public Menul()
 {
 wj.add(wj2);
 for(int i=0;i<wjxx.length;i++)
 wj2.add(wjxx[i]);
 wj.add(wj3);
 for(int i=0;i<bjxx.length;i++)
 bj2.add(bjxx[i]);
 for(int i=0;i<bjx.length;i++)
 {
 bj.add(bjx[i]);
 bjx[i].addActionListener(new ActionListener() 
     {         public void actionPerformed(ActionEvent e) 
         {
             
         }     });     // /////////////////////////////////////////////////////////////  end
 }
 for(int i=0;i<bzxx.length;i++)
 bz2.add(bzxx[i]);
 for(int i=0;i<bzx.length;i++)
 {
 bz.add(bzx[i]);
 bzx[i].addActionListener(new ActionListener() 
     {          public void actionPerformed(ActionEvent event) 
         {
          try 
             { 
                 String laf = UIManager.getSystemLookAndFeelClassName(); 
                 UIManager.setLookAndFeel(laf); 
             } catch (Exception e) {} 
              
             new RoundColorTable(); 
         }
     });      // /////////////////////////////////////////////////////////////  end
 }
 mb1.add(bz);
setMenuBar(mb1);
for(int i=0;i<flove.length;i++)
ck.add(new MenuItem(flove[i]));
 mb1.add(wj);
 setMenuBar(mb1);
 mb1.add(bj);
 mb1.add(ck);
 
 }
}
 class RoundColorTable extends JFrame 
 { 
    private String[] colname = {"第1列车位号","第2列车位号","第3列车位号","第4列车位号","第5列车位号"}; //表头信息 
    private String[][] data = new String[10][5]; //表内容 
     
    //界面组件----------------------// 
    private JScrollPane scroPanel = new JScrollPane(); //中底层滚动面板 
    private DefaultTableModel model; //列表默认TableModel 
    private JTable table; 
     
  
/** 
 * 构造方法 SelectionDemo() 
 */     
    public RoundColorTable() 
    { 
        makeFace(); 
        addListener(); 
        showFace(); 
    } 
  
  
  
/** 
 * 方法: 界面构建 makeFace() 
 */ 
    private void makeFace() 
    { 
         
        //表内容数组 data[][] 赋值------------// 
        for(int i = 0; i <10; i++) 
        { 
            for(int j = 0; j <5; j++)
            { 
                data[i][j] = "( " + (j+1) + ", " + (i+1) + " )"; 
            } 
        } 
         
        table = new JTable(model = new DefaultTableModel(data,colname)); 
         
        //新建列表现器------------------------// 
        DefaultTableCellRenderer tcr = new DefaultTableCellRenderer()
        { 
            public Component getTableCellRendererComponent(JTable table,  
                          Object value, boolean isSelected, boolean hasFocus,  
                                                     int row, int column) 
            { 
                     
                if(row%2 == 0) 
                    setBackground(Color.white); //设置奇数行底色 
                else if(row%2 == 1) 
                    setBackground(new Color(206,231,255));  //设置偶数行底色 
                     
                return super.getTableCellRendererComponent(table, value,  
                                          isSelected, hasFocus, row, column); 
            } 
        }; 
        //设置列表现器------------------------// 
        for(int i = 0; i < colname.length; i++)
        { 
            table.getColumn(colname[i]).setCellRenderer(tcr); 
        } 
                 
                 
        scroPanel.getViewport().setBackground(Color.white); 
        scroPanel.getViewport().add(table); 
         
        //总体界面布局------------------------// 
        getContentPane().add(scroPanel, BorderLayout.CENTER); 
    } 
  
  
  
/** 
 * 方法: 界面显示 showFace() 
 */ 
    private void showFace()
    { 
        setTitle("红星汽车城车位示意图"); 
        setSize(800,700); 
        Toolkit tmpTK = Toolkit.getDefaultToolkit(); 
        Dimension dime = tmpTK.getScreenSize(); 
        setLocation(dime.width - 450, dime.height - 400); 
        setVisible(true); 
    } 
  
/** 
 * 方法: 添加事件监听 addListener() 
 */    
    private void addListener() 
    { 
        this.addWindowListener(new WindowAdapter()
        {  //添加窗口关闭事件 
            public void windowClosing(WindowEvent e)
            { 
                setVisible(false); 
                RoundColorTable.this.dispose(); 
                System.exit(0); 
            } 
        }); 
    } 

解决方案 »

  1.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.table.*;public class windchill extends JFrame implements ActionListener {
    boolean flag = false, flag2 = false;// 表示判断的作用。
    protected JFrame frame, framejiance;
    protected JTextField textkehuhaoma, texthaoma, txtyh, txtmima, txt3,
    jTextField1;
    private JButton btnenter, btnderu, btnover, btncz;
    protected JLabel lbl, lbl2, lbl3, lblzhu, labelhaoma, labelkehuhaoma,
    lblyh, lblmima, lblx;
    private JPanel panel;
    private RoundColorTable demo; public static void main(String[] args) {
    windchill frame = new windchill();
    frame.setSize(500, 547);
    frame.setTitle("红星汽车城服务系统");
    frame.createGUI();
    frame.setVisible(true);
    } private void createGUI() {
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    Container window = getContentPane();
    window.setBackground(Color.pink);
    window.setLayout(new FlowLayout()); lbl = new JLabel();
    lbl.setText("红星汽车城服务区欢迎您的到来");
    lbl.setFont(new Font("隶书", Font.ROMAN_BASELINE, 30));
    lbl.setLocation(35, 0);
    lbl.setSize(550, 68);
    lbl.setForeground(Color.blue);
    lbl.setHorizontalAlignment(JLabel.CENTER);
    window.add(lbl); lbl2 = new JLabel();
    panel = new JPanel();
    lbl2.setIcon(new ImageIcon("hxqcc2.JPG"));
    panel.setPreferredSize(new Dimension(443, 407));
    panel.setBackground(Color.pink);
    panel.add(lbl2);
    window.add(panel); lbl = new JLabel();
    lbl.setText("welcome to hongxing 请先单击【检测】再【登入】");
    lbl.setFont(new Font("隶书", Font.CENTER_BASELINE, 17));
    lbl.setLocation(50, 20);
    lbl.setSize(500, 50);
    lbl.setForeground(Color.blue);
    lbl.setHorizontalAlignment(JLabel.CENTER);
    window.add(lbl); btnderu = new JButton("登录");
    window.add(btnderu);
    btnderu.setHorizontalAlignment(JLabel.CENTER);
    btnderu.addActionListener(this);
    } public void actionPerformed(ActionEvent event) {
    Menul f = new Menul();
    f.setSize(700, 580);
    f.setVisible(true);
    }
    }class Menul extends JFrame {
    JMenu Menu = new JMenu("欢迎菜单服务");
    MenuBar mb1 = new MenuBar();
    Menu wj = new Menu("文件");
    Menu wj2 = new Menu("打开文件");
    Menu wj3 = new Menu("退出系统");
    Menu bj = new Menu("编辑");
    Menu bj2 = new Menu("编辑文件");
    Menu ck = new Menu("查看");
    Menu bz2 = new Menu("帮助系统");
    Menu bz = new Menu("帮助");
    String[] flove = { "a", "b", "c", "d", "f", "g", "h", "j" };
    MenuItem[] bjx = { new MenuItem("退出编辑") };
    MenuItem[] ckx = { new MenuItem("查看文件"), new MenuItem("退出查看") };
    MenuItem[] bzx = { new MenuItem("帮助文件"), new MenuItem("退出帮助") };
    CheckboxMenuItem[] wjxx = { new CheckboxMenuItem("文件内容"),
    new CheckboxMenuItem("文件格式") };
    CheckboxMenuItem[] bjxx = { new CheckboxMenuItem("文件更新"),
    new CheckboxMenuItem("文件改写") };
    CheckboxMenuItem[] bzxx = { new CheckboxMenuItem("文件查看"),
    new CheckboxMenuItem("文件更新") };
    Button btntype = new Button("转换菜单选项"); public Menul() {
    wj.add(wj2);
    for (int i = 0; i < wjxx.length; i++)
    wj2.add(wjxx[i]);
    wj.add(wj3);
    for (int i = 0; i < bjxx.length; i++)
    bj2.add(bjxx[i]);
    for (int i = 0; i < bjx.length; i++) {
    bj.add(bjx[i]);
    bjx[i].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); // ///////////////////////////////////////////////////////////// end
    }
    for (int i = 0; i < bzxx.length; i++)
    bz2.add(bzxx[i]);
    for (int i = 0; i < bzx.length; i++) {
    bz.add(bzx[i]);
    bzx[i].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) {
    try {
    String laf = UIManager.getSystemLookAndFeelClassName();
    UIManager.setLookAndFeel(laf);
    } catch (Exception e) {
    } new RoundColorTable();

    }
    }); // ///////////////////////////////////////////////////////////// end
    }
    mb1.add(bz);
    setMenuBar(mb1);
    for (int i = 0; i < flove.length; i++)
    ck.add(new MenuItem(flove[i]));
    mb1.add(wj);
    setMenuBar(mb1);
    mb1.add(bj);
    mb1.add(ck); }
    }class RoundColorTable extends JFrame implements WindowListener{
    private String[] colname = { "第1列车位号", "第2列车位号", "第3列车位号", "第4列车位号",
    "第5列车位号" }; // 表头信息
    private String[][] data = new String[10][5]; // 表内容 // 界面组件----------------------//
    private JScrollPane scroPanel = new JScrollPane(); // 中底层滚动面板
    private DefaultTableModel model; // 列表默认TableModel
    private JTable table; /**
     * 构造方法 SelectionDemo()
     */
    public RoundColorTable() {
    makeFace();
    addListener();
    showFace();
    //this.setVisible(false);

    } /**
     * 方法: 界面构建 makeFace()
     */
    private void makeFace() { // 表内容数组 data[][] 赋值------------//
    for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 5; j++) {
    data[i][j] = "( " + (j + 1) + ", " + (i + 1) + " )";
    }
    } table = new JTable(model = new DefaultTableModel(data, colname)); // 新建列表现器------------------------//
    DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
    public Component getTableCellRendererComponent(JTable table,
    Object value, boolean isSelected, boolean hasFocus,
    int row, int column) { if (row % 2 == 0)
    setBackground(Color.white); // 设置奇数行底色
    else if (row % 2 == 1)
    setBackground(new Color(206, 231, 255)); // 设置偶数行底色 return super.getTableCellRendererComponent(table, value,
    isSelected, hasFocus, row, column);
    }
    };
    // 设置列表现器------------------------//
    for (int i = 0; i < colname.length; i++) {
    table.getColumn(colname[i]).setCellRenderer(tcr);
    } scroPanel.getViewport().setBackground(Color.white);
    scroPanel.getViewport().add(table); // 总体界面布局------------------------//
    getContentPane().add(scroPanel, BorderLayout.CENTER);
    } /**
     * 方法: 界面显示 showFace()
     */
    private void showFace() {
    setTitle("红星汽车城车位示意图");
    setSize(800, 700);
    Toolkit tmpTK = Toolkit.getDefaultToolkit();
    Dimension dime = tmpTK.getScreenSize();
    setLocation(dime.width - 450, dime.height - 400);
    setVisible(true);
    }
    /**
     * 方法: 添加事件监听 addListener()
     */
    private void addListener() {
    this.addWindowListener(this);
    }
    public void windowClosing(WindowEvent e) {
    setVisible(false);
    RoundColorTable.this.dispose();
    //System.exit(0);
    } @Override
    public void windowActivated(WindowEvent arg0) {
    // TODO Auto-generated method stub

    } @Override
    public void windowClosed(WindowEvent arg0) {
    // TODO Auto-generated method stub

    } @Override
    public void windowDeactivated(WindowEvent arg0) {
    // TODO Auto-generated method stub

    } @Override
    public void windowDeiconified(WindowEvent arg0) {
    // TODO Auto-generated method stub

    } @Override
    public void windowIconified(WindowEvent arg0) {
    // TODO Auto-generated method stub

    } @Override
    public void windowOpened(WindowEvent arg0) {
    // TODO Auto-generated method stub

    }

    }
      

  2.   

    对你想要关闭的窗口调用dispose()方法
      

  3.   

    只需要将RoundColorTable类的窗口关闭事件中,System.exit(0); 这一行去掉就行了。