Keyon同学 2017-06-15 09:26 采纳率: 50%
浏览 1524

求解为什么把一个类setVisible(false)后new下一个类,之前的窗口仍然不会消失

大一小白软件学生做实训项目,遇到了这个问题,请大佬们指正

代码如下:

 public class beforeRegister extends JFrame
{
    Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
    int width = (int)screensize.getWidth();
    int height = (int)screensize.getHeight();
    static JPasswordField bRpw = new JPasswordField();
    public beforeRegister()
    {
        Image im = (new ImageIcon("K店.jpg")).getImage();
        this.setIconImage(im);
        this.setTitle("K店信息管理员注册系统");
        this.getContentPane().setBackground(new Color(0,216,255));
        this.setLayout(null);
        this.setSize(400,300);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
        Font lfon = new Font("宋体",Font.PLAIN,18);

        JLabel bRlab = new JLabel("请输入注册口令:");
        bRlab.setBounds(50, 50, 200, 30);
        bRlab.setFont(lfon);

        bRpw.setBounds(50, 100, 290, 30);
        bRpw.addActionListener(new managerRegisterListener());

        JButton bRbt1 = new JButton("退出");
        bRbt1.setBounds(90, 180, 60, 30);
        bRbt1.addActionListener(new bRexitListener());

        JButton bRbt2 = new JButton("确认");
        bRbt2.setBounds(240, 180, 60, 30);
        bRbt2.addActionListener(new managerRegisterListener());

        this.add(bRlab);
        this.add(bRpw);
        this.add(bRbt1);
        this.add(bRbt2);
    }
    public class bRexitListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            System.exit(1);
        }
    }

    public class managerRegisterListener extends JFrame implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(String.valueOf(bRpw.getPassword()).equals("123456"))
            {
                setVisible(false);
                new managerRegister();
            }
            else if(String.valueOf(bRpw.getPassword()).equals("")|String.valueOf(bRpw.getPassword()).equals(null))
            {
                JOptionPane.showMessageDialog(this, "请输入口令!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
            else
            {
                JOptionPane.showMessageDialog(this, "对不起,您没有注册权限!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
        }
    }
}

这是第一个类,要跳转到接下来的类

 public class managerRegister extends JFrame
{
    Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
    int width = (int)screensize.getWidth();
    int height = (int)screensize.getHeight();
    static JLabel[] mRlab = {new JLabel("工号:"),new JLabel("姓名:"),new JLabel("性别:"),new JLabel("电话:")
            ,new JLabel("登录用户账号:"),new JLabel("登录用户密码:"),new JLabel("确认密码:")};
    static JTextField[] mRta = {new JTextField(),new JTextField(),new JTextField(),new JTextField()};
    static JPasswordField mRpw1 = new JPasswordField();
    static JPasswordField mRpw2 = new JPasswordField();
    static JRadioButton mRrb1 = new JRadioButton("男");
    static JRadioButton mRrb2 = new JRadioButton("女");
    public managerRegister()
    {
        ButtonGroup mRgrp = new ButtonGroup();
        Image im = (new ImageIcon("K店.jpg")).getImage();
        this.setIconImage(im);
        this.setTitle("K店信息管理员注册系统");
        this.setSize(600, 650);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
        this.getContentPane().setBackground(new Color(0,216,255));
        Font lfon = new Font("楷体",Font.BOLD,18);
        Font tafon = new Font("宋体",Font.PLAIN,21);
        this.setLayout(null);

        JLabel mRmainLab = new JLabel("管理员注册页");
        mRmainLab.setFont(new Font("隶书",Font.BOLD,60));


        JButton mRbt1 = new JButton("退出");
        mRbt1.addActionListener(new mRexitListener());
        JButton mRbt2 = new JButton("注册");
        mRbt2.addActionListener(new mRtextListener());

        mRmainLab.setBounds(114, 38, 600, 50);

        mRlab[0].setBounds(20, 150, 61, 30);
        mRlab[0].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
        mRlab[0].setFont(lfon);

        mRta[0].setBounds(90, 151, 200, 28);
        mRta[0].setFont(tafon);
        mRta[0].addActionListener(new mRtextListener());

        mRlab[1].setBounds(20, 200, 61, 30);
        mRlab[1].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
        mRlab[1].setFont(lfon);

        mRta[1].setBounds(90, 201, 200, 28);
        mRta[1].setFont(tafon);
        mRta[1].addActionListener(new mRtextListener());

        mRlab[2].setBounds(20, 250, 61, 30);
        mRlab[2].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
        mRlab[2].setFont(lfon);

        mRrb1.setBounds(90, 251, 50, 28);                    
        mRrb2.setBounds(160, 251, 50, 28);                    
        mRrb1.setBackground(new Color(0,216,255));
        mRrb2.setBackground(new Color(0,216,255));

        mRlab[3].setBounds(20, 300, 61, 30);
        mRlab[3].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
        mRlab[3].setFont(lfon);

        mRta[2].setBounds(90, 301, 200, 28);
        mRta[2].setFont(tafon);
        mRta[2].addActionListener(new mRtextListener());

        mRlab[4].setBounds(20, 350, 137, 30);
        mRlab[4].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
        mRlab[4].setFont(lfon);

        mRta[3].setBounds(166, 351, 200, 28);
        mRta[3].setFont(tafon);
        mRta[3].addActionListener(new mRtextListener());

        mRlab[5].setBounds(20, 400, 137, 30);
        mRlab[5].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
        mRlab[5].setFont(lfon);

        mRpw1.setBounds(166, 401, 200, 28);
        mRpw1.addActionListener(new mRtextListener());

        mRlab[6].setBounds(20, 450, 99, 30);
        mRlab[6].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
        mRlab[6].setFont(lfon);

        mRpw2.setBounds(128, 451, 200, 28);
        mRpw2.addActionListener(new mRtextListener());


        mRbt1.setBounds(130, 530, 75, 40);
        mRbt1.setFont(new Font("宋体",Font.PLAIN,20));
        mRbt2.setBounds(380, 530, 75, 40);
        mRbt2.setFont(new Font("宋体",Font.PLAIN,20));

        mRgrp.add(mRrb1);
        mRgrp.add(mRrb2);

        this.add(mRrb1);
        this.add(mRrb2);
        this.add(mRmainLab);
        this.add(mRlab[0]);
        this.add(mRlab[1]);
        this.add(mRlab[2]);
        this.add(mRlab[3]);
        this.add(mRlab[4]);
        this.add(mRlab[5]);
        this.add(mRlab[6]);
        this.add(mRbt1);
        this.add(mRbt2);
        this.add(mRta[0]);
        this.add(mRta[1]);
        this.add(mRta[2]);
        this.add(mRta[3]);
        this.add(mRpw1);
        this.add(mRpw2);
    }

    public class mRexitListener extends JFrame implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            System.exit(1);
        }
    }
    public class mRtextListener extends JFrame implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {

            if(mRta[0].getText().equals("")|mRta[0].getText().equals(null))
            {
                JOptionPane.showMessageDialog(this, "请输入您的工号!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
            else if(mRta[1].getText().equals("")|mRta[0].getText().equals(null))
            {
                JOptionPane.showMessageDialog(this, "请输入您的姓名!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
            else if(mRta[2].getText().equals("")|mRta[0].getText().equals(null))
            {
                JOptionPane.showMessageDialog(this, "请输入您的电话!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
            else if(mRta[3].getText().equals("")|mRta[0].getText().equals(null))
            {
                JOptionPane.showMessageDialog(this, "请输入登录账号!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
            else if(String.valueOf(mRpw1.getPassword()).equals("")|String.valueOf(mRpw1.getPassword()).equals(null))
            {
                JOptionPane.showMessageDialog(this, "请输入登录密码!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
            else if(String.valueOf(mRpw2.getPassword()).equals("")|String.valueOf(mRpw2.getPassword()).equals(null))
            {
                JOptionPane.showMessageDialog(this, "请再输入一次登录密码!","系统消息",JOptionPane.WARNING_MESSAGE);
            }
            else
            {
                JOptionPane.showMessageDialog(null, "注册成功!");
                setVisible(false);
                new logIn();
            }
        }
        public class mRrbListener extends JFrame implements ActionListener
        {
            public void actionPerformed(ActionEvent e)
            {

            }
        }
    }
}

  • 写回答

1条回答 默认 最新

  • Keyon同学 2017-06-15 09:33
    关注

    这个执行完跳转logIn类后managerRegister的窗口也是不会消失,求大神指正

    评论

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型