使用 HashMaps Java Swing 注册

Registration with HashMaps Java Swing

我是 Java 的新手。我想制作一个注册程序,稍后用于登录。我想让用户输入他们的用户名 (KorisnickoIme)、密码 (Lozinka) 和重复密码 (PLozinka);将 Lozinka 与 PLozinka 进行比较;如果一切正常,将 Lozinka 作为值添加到具有键 KorisnickoIme.

的哈希图中

问题是当我打印 lozinka 时,我什么也没得到。所以这意味着我在哈希映射中也没有得到任何东西,我以后不能用它来登录东西。

public class RegistrujSeProzor {
    static HashMap<String, Object> korisnici = new HashMap<>();

    static String KorisnickoIme = "";
    static String Lozinka = "";
    static String PLozinka = "";

    static void prozor () {
        JFrame prozor = new JFrame();
        prozor.setLayout(null);
        prozor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        prozor.setIconImage(new ImageIcon("res/purple.png").getImage());
        prozor.setVisible(true);
        prozor.setSize(400, 300);
        prozor.setLocationRelativeTo(null);
        prozor.setResizable(false);

        Container contentPane = prozor.getContentPane();

        JLabel label1 = new JLabel("Novo Korisnicko Ime : ");
        JLabel label2 = new JLabel("Nova Lozinka : ");
        JLabel label3 = new JLabel("Ponovte Lozinku : ");

        label1.setBounds(10, 20, 200, 30);
        label2.setBounds(10, 50, 200, 30);
        label3.setBounds(10, 80, 200, 30);

        contentPane.add(label1);
        contentPane.add(label2);
        contentPane.add(label3);

        JTextField textField = new JTextField(20);
        contentPane.add(textField);
        textField.setBounds(140, 26, 200, 20);
        KorisnickoIme = textField.getText();

        JTextField textField2 = new JTextField(20);
        contentPane.add(textField2);
        textField2.setBounds(140, 57, 200, 20);
        Lozinka = textField2.getText();

        JTextField textField3 = new JTextField(20);
        contentPane.add(textField3);
        textField3.setBounds(140, 88, 200, 20);
        PLozinka = textField3.getText();

        JButton dPotvrdi = new JButton("Potvrdi");
        dPotvrdi.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (Lozinka.equals(PLozinka)) {
                    korisnici.put(KorisnickoIme, Lozinka);
                    UlogujSeProzor.main(null);
                    prozor.dispose();
                    System.out.println(Lozinka);

                }else{
                    JOptionPane.showMessageDialog(null,"Pogresno uneto Novo Korisnicko ime ili Lozinka !   "
                            + "Pokusajte ponovo .");
                    RegistrujSeProzor.main(null);
                }
            }
        });

        JButton dNazad = new JButton("Nazad");
        dNazad.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LoginRegisterProzor.main(null);
                prozor.dispose();
            }
        });

        contentPane.add(dPotvrdi);
        contentPane.add(dNazad);

        dPotvrdi.setBounds(215, 215, 150, 30);
        dNazad.setBounds(15, 215, 150, 30);
    }

    public static String getText() {
        return KorisnickoIme;
    }

    public static void setText(String text) {
        RegistrujSeProzor.KorisnickoIme = text;
    }

    public static String getText2() {
        return Lozinka;
    }

    public static void setText2(String text2) {
        RegistrujSeProzor.Lozinka = text2;
    }

    public static String getText3() {
        return PLozinka;
    }

    public static void setText3(String text3) {
        RegistrujSeProzor.PLozinka = text3;
    }

    public static void main(String[] args) {
        prozor();
    }
Lozinka = textField2.getText();

您在创建文本字段后立即阅读它,此时它仍然是空的。您应该在 ActionListeneractionPerformed 方法中执行此操作,例如:

button.addActionListener(e -> {
    String password1 = passwordField.getText();
    String password2 = repeatPasswordField.getText();

    // compare
});

或者如果您不喜欢 lambda 表达式的标准方法:

button.addActionListener(new ActionListener() {
   @Override    
   public void actionPerformed(ActionEvent e) {
      String password1 = passwordField.getText();
      String password2 = repeatPasswordField.getText();

      // compare    
    }
});