使用 HashMaps Java Swing 注册
Registration with HashMaps Java Swing
我是 Java 的新手。我想制作一个注册程序,稍后用于登录。我想让用户输入他们的用户名 (KorisnickoIme
)、密码 (Lozinka
) 和重复密码 (PLozinka
);将 Lozink
a 与 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();
您在创建文本字段后立即阅读它,此时它仍然是空的。您应该在 ActionListener
的 actionPerformed
方法中执行此操作,例如:
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
}
});
我是 Java 的新手。我想制作一个注册程序,稍后用于登录。我想让用户输入他们的用户名 (KorisnickoIme
)、密码 (Lozinka
) 和重复密码 (PLozinka
);将 Lozink
a 与 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();
您在创建文本字段后立即阅读它,此时它仍然是空的。您应该在 ActionListener
的 actionPerformed
方法中执行此操作,例如:
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
}
});