Я новичок в Java. Я хочу сделать программу регистрации, которую я буду использовать позже для входа. Я хочу заставить пользователя ввести свое имя пользователя (KorisnickoIme
), пароль (Lozinka
) и повторить пароль (PLozinka
); сравнение Lozink
a с PLozinka
; и если все это хорошо, добавьте Lozinka
в качестве значения к хэш-карте с ключом KorisnickoIme
.Регистрация с помощью HashMaps Java Swing
Проблема в том, что когда я печатаю 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();
}
1. Java ГПИ должны работать на разных ОС», размер экрана, разрешение экрана и т. д., используя разные PLAF в разных локалях. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). 2. Чтобы лучше помочь, отправьте сообщение [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). .. –
Пожалуйста, прочитайте о руководствах по стилю java. Имена переменных всегда начинаются с нижнего регистра; кроме CONSTANTS. Тогда я бы предложил: немного почитать о «статических» и «нестатических» методах/полях. Вы используете статику по всему месту, и это просто не очень хорошая идея. В-третьих: не делайте этого. У вас нет нескольких «вещей», где вы используете setText1, setText2 и т. Д. Это просто очень плохая практика. Используйте имена, которые говорят, что вещь за названием ** **. – GhostCat
.. 3) Один из способов получить изображение (-ы) для примера - это горячая ссылка на изображения, увиденные в [этот вопрос и ответы] (http://stackoverflow.com/q/19209650/418556). 4) Пожалуйста, изучите общую номенклатуру Java (соглашения об именах - например, 'EveryWordUpperCaseClass',' firstWordLowerCaseMethod() ',' firstWordLowerCaseAttribute', если это не 'UPPER_CASE_CONSTANT') и использовать ее последовательно. –