import java.awt.*;
import java.awt.event.*;import javax.swing.*;
  public  class Hxqcc2 extends JFrame implements ActionListener
{   
  private JButton btnenter,btnderu;
  private JLabel lbl,lbl2;
  private JPanel panel;
  private  int x,y;
  private String n,m;
  
  public static void main(String[] args) 
  {
  Hxqcc2 frame=new  Hxqcc2();
       frame.setSize(500,535);
       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.CENTER_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);
 
 btnenter =new JButton("进入");
 window.add(btnenter);
 btnenter.setHorizontalAlignment(JLabel.CENTER);
 btnenter.addActionListener(this);

 
 btnderu =new JButton("登录");
 window.add(btnderu);
 btnderu.setHorizontalAlignment(JLabel.CENTER);
 btnderu.addActionListener(this);
  }
  public void actionPerformed(ActionEvent event) 
  {
   if(event.getSource()==btnenter)
   {
   String str1="",str2="";
   n= JOptionPane.showInputDialog(this,"请输入车牌号码:","车辆检验",JOptionPane.QUESTION_MESSAGE);
   n+=str1;
       x= Integer.parseInt(n);
   m = JOptionPane.showInputDialog(this,"请输入客户代号,为默认三位数","客户代号",JOptionPane.QUESTION_MESSAGE);
   m+=str2;
   y= Integer.parseInt(m);
  if(x<1000&&y<1000)
   {JOptionPane.showMessageDialog(this,"您的车辆登入要求正确,继续" ,"检测结果",JOptionPane.INFORMATION_MESSAGE);}
   }   if(event.getSource()==btnderu)
   {
   btnderu.addActionListener(new ActionListener()
  {
     public void actionPerformed(ActionEvent e) 
     {
      class Menul extends JFrame 
      {
       JMenu Menu = new JMenu();
       MenuBar mb1 = new MenuBar();
       Menu f = new Menu("红星简介");
       Menu m = new Menu("搜索区位");
       Menu s = new Menu("服务客户"); 
       TextField text = new TextField("欢迎光临红星汽车城", 30);
       String[] flavors = 
       { "Chocolate", "Strawberry",
         "Vanilla Fudge Swirl", "Mint Chip", 
         "Mocha Almond Fudge", "Rum Raisin", 
         "Praline Cream", "Mud Pie"
       };
       CheckboxMenuItem[] safety = 
       {
        new CheckboxMenuItem("Guard"),
        new CheckboxMenuItem("Hide")
       };
       MenuItem[] file =
       {
        new MenuItem("Open"),
        new MenuItem("Exit")
       };
       MenuBar mb2 = new MenuBar();
       Menu fooBar = new Menu("客户评价/留言/签名");
       MenuItem[] other = 
       {
       new MenuItem("评价"),
       new MenuItem("留言"),
       new MenuItem("签名"),
       };
       Button b = new Button("Swap Menus");
       public Menul()
       {
         for(int i = 0; i < flavors.length; i++)
         {
        m.add(new MenuItem(flavors[i]));
        // Add separators at intervals:
        if((i+1) % 3 == 0) 
        m.addSeparator();
         }
         for(int i = 0; i < safety.length; i++)
         s.add(safety[i]);
         f.add(s);
         for(int i = 0; i < file.length; i++)
         f.add(file[i]);
         mb1.add(f);
         mb1.add(m);
         setMenuBar(mb1);
         text.setEditable(false);
         add("Center", text);
         // Set up the system for swapping menus:
         add("North", b);
         for(int i = 0; i < other.length; i++)
         fooBar.add(other[i]);
         mb2.add(fooBar);
       }
       public boolean handleEvent(Event evt) 
       {
        if(evt.id == Event.WINDOW_DESTROY) 
             System.exit(0);
        else 
           return super.handleEvent(evt);
           return true;
       }
       public boolean action(Event evt, Object arg)
       {
          if(evt.target.equals(b))
          {
        MenuBar m = getMenuBar();
        if(m == mb1) setMenuBar(mb2);
            else if (m == mb2) setMenuBar(mb1);
        } 
        else if(evt.target instanceof MenuItem) 
        {
        if(arg.equals("Open")) 
        {
         String s = text.getText();
         boolean chosen = false;
             for(int i = 0; i < flavors.length; i++)
         if(s.equals(flavors[i])) 
         chosen = true;
         if(!chosen)
         text.setText("Choose a flavor first!");
         else
         text.setText("Opening "+ s +". Mmm, mm!");
        }
        else if(evt.target.equals(file[1]))
          System.exit(0);
              // CheckboxMenuItems cannot use String 
          // matching; you must match the target:
        else if(evt.target.equals(safety[0]))
           text.setText("Guard the Ice Cream! " +"Guarding is " + safety[0].getState());
        else if(evt.target.equals(safety[1]))
           text.setText("Hide the Ice Cream! " +"Is it cold? " + safety[1].getState());
        else 
        text.setText(arg.toString());
        } 
        else 
         return super.action(evt, arg);
         return true;
       }
      public void main(String[] args)
      {
        Menul f = new  Menul();
        f.resize(400,300);
        f.setVisible(true);
      }
     }
        }});
    }
   }
}
谢谢专家!!!

解决方案 »

  1.   

    楼主把 Menul  类抽出来,放到方法外面,写成 Hxqcc2 这个类的内部类,或者干脆直接在作为一个独立的类来写。
    然后把接收登录的代码段改成下面的:if(event.getSource()==btnderu)
    {
        //如果想要隐藏主窗体的话,把下面的代码取消注释
        //Hxqcc2.this.setVisible(false);
        Menul f = new  Menul();
        f.resize(400,300);
        f.setVisible(true);
    }
      

  2.   

    package com.sysdynamic.test;import java.awt.*;
    import java.awt.event.*;import javax.swing.*;public class Hxqcc2 extends JFrame implements ActionListener {
    private JButton btnenter, btnderu;
    private JLabel lbl, lbl2;
    private JPanel panel;
    private int x, y;
    private String n, m; public static void main(String[] args) {
    Hxqcc2 frame = new Hxqcc2();
    frame.setSize(500, 535);
    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.CENTER_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); btnenter = new JButton("进入");
    window.add(btnenter);
    btnenter.setHorizontalAlignment(JLabel.CENTER);
    btnenter.addActionListener(this); btnderu = new JButton("登录");
    window.add(btnderu);
    btnderu.setHorizontalAlignment(JLabel.CENTER);
    btnderu.addActionListener(this);
    } public void actionPerformed(ActionEvent event) {
    if (event.getSource() == btnenter) {
    String str1 = "", str2 = "";
    n = JOptionPane.showInputDialog(this, "请输入车牌号码:", "车辆检验",
    JOptionPane.QUESTION_MESSAGE);
    n += str1;
    x = Integer.parseInt(n);
    m = JOptionPane.showInputDialog(this, "请输入客户代号,为默认三位数", "客户代号",
    JOptionPane.QUESTION_MESSAGE);
    m += str2;
    y = Integer.parseInt(m);
    if (x < 1000 && y < 1000) {
    JOptionPane.showMessageDialog(this, "您的车辆登入要求正确,继续", "检测结果",
    JOptionPane.INFORMATION_MESSAGE);
    }
    } if (event.getSource() == btnderu) { ////////////////////////////////////////////////

    Menul menul=new Menul();//调用Menul 类
    menul.setBounds(200, 300, 800, 600);//
    menul.setVisible(true);//
    setVisible(false);//
    //////////////////////////////////////////////////////////

    }
    }
    }/////////////////////////////////////////////////////////////////////////////////////////
    //提出来做为一个单独的类.
    class Menul extends JFrame {
    JMenu Menu = new JMenu();
    MenuBar mb1 = new MenuBar();
    Menu f = new Menu("红星简介");
    Menu m = new Menu("搜索区位");
    Menu s = new Menu("服务客户");
    TextField text = new TextField("欢迎光临红星汽车城", 30);
    String[] flavors = { "Chocolate", "Strawberry", "Vanilla Fudge Swirl",
    "Mint Chip", "Mocha Almond Fudge", "Rum Raisin", "Praline Cream",
    "Mud Pie" };
    CheckboxMenuItem[] safety = { new CheckboxMenuItem("Guard"),
    new CheckboxMenuItem("Hide") };
    MenuItem[] file = { new MenuItem("Open"), new MenuItem("Exit") };
    MenuBar mb2 = new MenuBar();
    Menu fooBar = new Menu("客户评价/留言/签名");
    MenuItem[] other = { new MenuItem("评价"), new MenuItem("留言"),
    new MenuItem("签名"), };
    Button b = new Button("Swap Menus"); public Menul() {
    for (int i = 0; i < flavors.length; i++) {
    m.add(new MenuItem(flavors[i]));
    // Add separators at intervals:
    if ((i + 1) % 3 == 0)
    m.addSeparator();
    }
    for (int i = 0; i < safety.length; i++)
    s.add(safety[i]);
    f.add(s);
    for (int i = 0; i < file.length; i++)
    f.add(file[i]);
    mb1.add(f);
    mb1.add(m);
    setMenuBar(mb1);
    text.setEditable(false);
    add("Center", text);
    // Set up the system for swapping menus:
    add("North", b);
    for (int i = 0; i < other.length; i++)
    fooBar.add(other[i]);
    mb2.add(fooBar);
    } public boolean handleEvent(Event evt) {
    if (evt.id == Event.WINDOW_DESTROY)
    System.exit(0);
    else
    return super.handleEvent(evt);
    return true;
    } public boolean action(Event evt, Object arg) {
    if (evt.target.equals(b)) {
    MenuBar m = getMenuBar();
    if (m == mb1)
    setMenuBar(mb2);
    else if (m == mb2)
    setMenuBar(mb1);
    } else if (evt.target instanceof MenuItem) {
    if (arg.equals("Open")) {
    String s = text.getText();
    boolean chosen = false;
    for (int i = 0; i < flavors.length; i++)
    if (s.equals(flavors[i]))
    chosen = true;
    if (!chosen)
    text.setText("Choose a flavor first!");
    else
    text.setText("Opening " + s + ". Mmm, mm!");
    } else if (evt.target.equals(file[1]))
    System.exit(0);
    // CheckboxMenuItems cannot use String
    // matching; you must match the target:
    else if (evt.target.equals(safety[0]))
    text.setText("Guard the Ice Cream! " + "Guarding is "
    + safety[0].getState());
    else if (evt.target.equals(safety[1]))
    text.setText("Hide the Ice Cream! " + "Is it cold? "
    + safety[1].getState());
    else
    text.setText(arg.toString());
    } else
    return super.action(evt, arg);
    return true;
    } public void main(String[] args) {
    Menul f = new Menul();
    f.resize(400, 300);
    f.setVisible(true);
    }
    }
    第一种方法....把你的Menul提出来不是蛮好.
    用下面的第二种方法:不要用Hxqcc2类去implements ActionListener 而是用你对应的Button去侦听,注册事件.

      

  3.   


    package com.sysdynamic.test;import java.awt.*;
    import java.awt.event.*;import javax.swing.*;public class Hxqcc2 extends JFrame {
    private JButton btnenter, btnderu;
    private JLabel lbl, lbl2;
    private JPanel panel;
    private int x, y;
    private String n, m; public static void main(String[] args) {
    Hxqcc2 frame = new Hxqcc2();
    frame.setSize(500, 535);
    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.CENTER_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); btnenter = new JButton("进入");
    window.add(btnenter);
    btnenter.setHorizontalAlignment(JLabel.CENTER); // /////////////////////////////////////////////// btnenter.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) { enter(e);
    }
    }); // /////////////////////////////////////////////// btnderu = new JButton("登录");
    window.add(btnderu);
    btnderu.setHorizontalAlignment(JLabel.CENTER); // /////////////////////////////////////////////// btnderu.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) { deru(e);
    }
    }); // ///////////////////////////////////////////////
    } public void enter(ActionEvent event) {
    if (event.getSource() == btnenter) {
    String str1 = "", str2 = "";
    n = JOptionPane.showInputDialog(this, "请输入车牌号码:", "车辆检验",
    JOptionPane.QUESTION_MESSAGE);
    n += str1;
    x = Integer.parseInt(n);
    m = JOptionPane.showInputDialog(this, "请输入客户代号,为默认三位数", "客户代号",
    JOptionPane.QUESTION_MESSAGE);
    m += str2;
    y = Integer.parseInt(m);
    if (x < 1000 && y < 1000) {
    JOptionPane.showMessageDialog(this, "您的车辆登入要求正确,继续", "检测结果",
    JOptionPane.INFORMATION_MESSAGE);
    }
    }
    } public void deru(ActionEvent event) {
    if (event.getSource() == btnderu) { // ////////////////////////////////////////////// Menul menul = new Menul();// 调用Menul 类
    menul.setBounds(200, 300, 800, 600);//
    menul.setVisible(true);//
    setVisible(false);//

    // ////////////////////////////////////////////////////////
    }
    }
    }// ///////////////////////////////////////////////////////////////////////////////////////
    // 提出来做为一个单独的类.
    class Menul extends JFrame {
    JMenu Menu = new JMenu();
    MenuBar mb1 = new MenuBar();
    Menu f = new Menu("红星简介");
    Menu m = new Menu("搜索区位");
    Menu s = new Menu("服务客户");
    TextField text = new TextField("欢迎光临红星汽车城", 30);
    String[] flavors = { "Chocolate", "Strawberry", "Vanilla Fudge Swirl",
    "Mint Chip", "Mocha Almond Fudge", "Rum Raisin", "Praline Cream",
    "Mud Pie" };
    CheckboxMenuItem[] safety = { new CheckboxMenuItem("Guard"),
    new CheckboxMenuItem("Hide") };
    MenuItem[] file = { new MenuItem("Open"), new MenuItem("Exit") };
    MenuBar mb2 = new MenuBar();
    Menu fooBar = new Menu("客户评价/留言/签名");
    MenuItem[] other = { new MenuItem("评价"), new MenuItem("留言"),
    new MenuItem("签名"), };
    Button b = new Button("Swap Menus"); public Menul() {
    for (int i = 0; i < flavors.length; i++) {
    m.add(new MenuItem(flavors[i]));
    // Add separators at intervals:
    if ((i + 1) % 3 == 0)
    m.addSeparator();
    }
    for (int i = 0; i < safety.length; i++)
    s.add(safety[i]);
    f.add(s);
    for (int i = 0; i < file.length; i++)
    f.add(file[i]);
    mb1.add(f);
    mb1.add(m);
    setMenuBar(mb1);
    text.setEditable(false);
    add("Center", text);
    // Set up the system for swapping menus:
    add("North", b);
    for (int i = 0; i < other.length; i++)
    fooBar.add(other[i]);
    mb2.add(fooBar);
    } public boolean handleEvent(Event evt) {
    if (evt.id == Event.WINDOW_DESTROY)
    System.exit(0);
    else
    return super.handleEvent(evt);
    return true;
    } public boolean action(Event evt, Object arg) {
    if (evt.target.equals(b)) {
    MenuBar m = getMenuBar();
    if (m == mb1)
    setMenuBar(mb2);
    else if (m == mb2)
    setMenuBar(mb1);
    } else if (evt.target instanceof MenuItem) {
    if (arg.equals("Open")) {
    String s = text.getText();
    boolean chosen = false;
    for (int i = 0; i < flavors.length; i++)
    if (s.equals(flavors[i]))
    chosen = true;
    if (!chosen)
    text.setText("Choose a flavor first!");
    else
    text.setText("Opening " + s + ". Mmm, mm!");
    } else if (evt.target.equals(file[1]))
    System.exit(0);
    // CheckboxMenuItems cannot use String
    // matching; you must match the target:
    else if (evt.target.equals(safety[0]))
    text.setText("Guard the Ice Cream! " + "Guarding is "
    + safety[0].getState());
    else if (evt.target.equals(safety[1]))
    text.setText("Hide the Ice Cream! " + "Is it cold? "
    + safety[1].getState());
    else
    text.setText(arg.toString());
    } else
    return super.action(evt, arg);
    return true;
    } public void main(String[] args) {
    Menul f = new Menul();
    f.resize(400, 300);
    f.setVisible(true);
    }
    }