Почему мой JLabels распечатывается в одном и том же месте? - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь создать программу, которая будет использоваться на моем складе, используя JFrames для разных экранов.Экран входа в систему отображается так, как я его запрограммировал, экран сбоя не будет отображаться вообще, а экран успешного входа в главное меню занимает все 3 метки, которые я ставлю для разных строк, и печатаю их все в одном и том же месте, чтобы вы не могли видеть, что он говорит..

Вначале я думал, что это что-то с частями кода в неправильном месте, но после копирования в другом месте ничего не изменилось.Для первого экрана мне нужно было создать пустой 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);

                    }
                }
            }
        });






    }

}


они должны быть разными строками, какВы могли видеть в моем коде, но все это размыто в одной строке ..

1 Ответ

0 голосов
/ 26 сентября 2019

Точно так же, чтобы каждый, кто пытался помочь мне после нескольких дней копания на всех форумах, нашел решение очень простым, не сказав, что оно слишком мощное, чтобы его использовать.Просто.Я создал каждый фрейм как отдельный класс, тогда, когда он проверяет пароль, если он правильный, если true, я использовал это:

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

, где создает новый фрейм с необходимыми атрибутами, и они не смешиваются вместе, как это было раньше,В следующий раз, прежде чем сказать кому-то не использовать что-либо (как они хотели бы сказать, что вы недостаточно хороши), просто примите решение, как пытался Эндрю Томпсон :) Спасибо

...