为什么我的 JLabel 以完全相同的方式打印出来 space?

Why my JLabels print out in same exact space?

我正在尝试使用 JFrames 为不同的屏幕制作一个在我的仓库中使用的程序。登录屏幕完全像我编码的那样显示,失败屏幕根本不会显示,成功的登录主菜单屏幕需要我为不同行放置的所有 3 个 JLabel,并将它们全部打印在完全相同的位置,所以你看不到它说的是什么.

一开始我以为它有部分代码放错了地方,但在将它复制到别处后没有任何改变。对于第一个屏幕,我需要在框架代码的末尾创建空的 JLabel,它解决了完全相同的问题,但它与主菜单屏幕不同

public class Login {
    public Login() {
        JFrame login = new JFrame("RedPraire");
        JFrame mmenu = new JFrame("RedPraire");
        JFrame failed = new JFrame("RedPraire");

        JLabel acc = new JLabel("Username:"); 
        JLabel pass = new JLabel("Password:");
        JLabel page = new JLabel("1/1");
        JLabel mm1 = new JLabel("1 System Directed");
        JLabel mm2 = new JLabel("2 User Directed");
        JLabel mm3 = new JLabel("3 Logout");
        JLabel site = new JLabel("Thorne");
        JLabel info = new JLabel("RPPRODWMS (PL0236)");
        JLabel title = new JLabel("Login");
        JLabel titlemm = new JLabel("MainMenu");
        JLabel sitemm = new JLabel("W114");
        JLabel selmm = new JLabel("Selection?");
        JLabel createdby = new JLabel("(c) JDA 1995-2018");
        JLabel flogin = new JLabel("Invalid username or password press enter...");
        JLabel x = new JLabel("");
        JTextField acc1 = new JTextField("") ;
        JTextField pass1 = new JTextField("");


        login.setSize(600, 380);
        login.setVisible(true);
        login.setResizable(false);
        login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        login.setLocationRelativeTo(null);
        login.getContentPane().setBackground(Color.black);

        failed.setSize(600, 380);
        failed.setVisible(false);
        failed.setLocationRelativeTo(null);
        failed.setResizable(false);
        failed.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        failed.getContentPane().setBackground(Color.black);

        mmenu.setSize(600, 380);
        mmenu.setVisible(false);
        mmenu.setResizable(false);
        mmenu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mmenu.setLocationRelativeTo(null);
        mmenu.getContentPane().setBackground(Color.black);

        title.setBounds(270, 2, 40, 20);
        title.setFont(new Font("Arial", Font.BOLD, 14));
        title.setForeground(Color.white);

        page.setBounds(2, 2, 40, 20);
        page.setFont(new Font("Arial", Font.BOLD, 14));
        page.setForeground(Color.white);

        info.setBounds(2, 30, 160, 20);
        info.setFont(new Font("Arial", Font.BOLD, 14));
        info.setForeground(Color.white);

        site.setBounds(2, 50, 120, 20);
        site.setFont(new Font("Arial", Font.BOLD, 14));
        site.setForeground(Color.white);

        acc.setBounds(2, 70, 160, 20);
        acc.setFont(new Font("Arial", Font.BOLD, 14));
        acc.setForeground(Color.white);

        pass.setBounds(2, 90, 160, 20);
        pass.setFont(new Font("Arial", Font.BOLD, 14));
        pass.setForeground(Color.white);

        createdby.setBounds(2, 220, 160, 20);
        createdby.setFont(new Font("Arial", Font.BOLD, 14));
        createdby.setForeground(Color.white);

        login.add(title);
        login.add(page);
        login.add(site);
        login.add(info);
        login.add(acc);
        login.add(pass);
        login.add(createdby);
        login.add(acc1);
        login.add(pass1);
        login.add(x);

        acc1.setBounds(82, 70, 160, 20);
        acc1.setBackground(Color.black);
        acc1.setForeground(Color.white);
        acc1.setCaretColor(Color.white);
        acc1.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.white));
        acc1.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode() == KeyEvent.VK_ENTER) {
                    if(acc1.getText().equals("jud") && (pass1.getText().equals("sze"))) {
                        login.setVisible(false);
                        mmenu.setVisible(true);


                        selmm.setBounds(2, 220, 160, 20);
                        selmm.setFont(new Font("Arial", Font.BOLD, 14));
                        selmm.setForeground(Color.white);

                        mm1.setBounds(2, 70, 160, 20);
                        mm1.setFont(new Font("Arial", Font.BOLD, 14));
                        mm1.setForeground(Color.white);

                        mm2.setBounds(2, 90, 160, 20);
                        mm2.setFont(new Font("Arial", Font.BOLD, 14));
                        mm2.setForeground(Color.white);

                        mm3.setBounds(2, 110, 160, 20);
                        mm3.setFont(new Font("Arial", Font.BOLD, 14));
                        mm3.setForeground(Color.white);

                        titlemm.setBounds(270, 2, 40, 20);
                        titlemm.setFont(new Font("Arial", Font.BOLD, 14));
                        titlemm.setForeground(Color.white);

                        sitemm.setBounds(2, 50, 120, 20);
                        sitemm.setFont(new Font("Arial", Font.BOLD, 14));
                        sitemm.setForeground(Color.white);

                        flogin.setBounds(30, 200, 200, 20);
                        flogin.setFont(new Font("Arial", Font.BOLD, 14));
                        flogin.setForeground(Color.white);

                        mmenu.add(page);
                        mmenu.add(createdby);
                        mmenu.add(titlemm);
                        mmenu.add(sitemm);
                        mmenu.add(selmm);
                        mmenu.add(mm1);
                        mmenu.add(mm2);
                        mmenu.add(mm3);
                        mmenu.add(x);

                    } else {
                        login.setVisible(false);
                        flogin.setVisible(true);

                        failed.add(flogin);
                        failed.add(page);
                        failed.add(x);

                    }
                }
            }
        });

        pass1.setBounds(82, 90, 160, 20);
        pass1.setCaretColor(Color.white);
        pass1.setBackground(Color.black);
        pass1.setForeground(Color.white);
        pass1.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.white));;
        pass1.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode() == KeyEvent.VK_ENTER) {
                    if(acc1.getText().equals("jud") && (pass1.getText().equals("sze"))) {
                        login.setVisible(false);
                        mmenu.setVisible(true);


                        selmm.setBounds(2, 220, 160, 20);
                        selmm.setFont(new Font("Arial", Font.BOLD, 14));
                        selmm.setForeground(Color.white);

                        mm1.setBounds(2, 70, 160, 20);
                        mm1.setFont(new Font("Arial", Font.BOLD, 14));
                        mm1.setForeground(Color.white);

                        mm2.setBounds(2, 70, 160, 20);
                        mm2.setFont(new Font("Arial", Font.BOLD, 14));
                        mm2.setForeground(Color.white);

                        mm3.setBounds(2, 70, 160, 20);
                        mm3.setFont(new Font("Arial", Font.BOLD, 14));
                        mm3.setForeground(Color.white);

                        titlemm.setBounds(270, 2, 40, 20);
                        titlemm.setFont(new Font("Arial", Font.BOLD, 14));
                        titlemm.setForeground(Color.white);

                        sitemm.setBounds(2, 50, 120, 20);
                        sitemm.setFont(new Font("Arial", Font.BOLD, 14));
                        sitemm.setForeground(Color.white);

                        flogin.setBounds(30, 200, 200, 20);
                        flogin.setFont(new Font("Arial", Font.BOLD, 14));
                        flogin.setForeground(Color.white);

                        mmenu.add(page);
                        mmenu.add(createdby);
                        mmenu.add(titlemm);
                        mmenu.add(sitemm);
                        mmenu.add(selmm);
                        mmenu.add(mm1);
                        mmenu.add(mm2);
                        mmenu.add(mm3);
                        mmenu.add(x);


                    } else {
                        login.setVisible(false);
                        flogin.setVisible(true);

                        failed.add(flogin);
                        failed.add(page);
                        failed.add(x);

                    }
                }
            }
        });






    }

}


正如您在我的代码中看到的那样,它们应该是不同的行,但它们在一行中完全模糊了..

所有在所有论坛上搜索了几天后试图帮助我的人都知道,解决方案非常简单,不用说这太强大了,无法使用它如何完美运行?简单的。我已经将每一帧创建为不同 class 然后当它检查密码是否正确时我使用了这个:

login.setVisible(false);
login.dispose();
new MainMenu();

在哪里创建具有所需属性的新框架,并且它们不会像以前那样混合在一起。下次在告诉某人不要使用某些东西之前(因为他们想说你不够好)只是想出像安德鲁汤普森那样的解决方案:) 谢谢