私はJavaを初めて使用しています。後でログインに使用する登録プログラムを作成したいと思います。ユーザー名(KorisnickoIme
)、パスワード(Lozinka
)、パスワードの繰り返し(PLozinka
)を入力させたい。 Lozink
とPLozinka
を比較してください。すべてが良い場合は、KorisnickoIme
というハッシュマップに値としてLozinka
を追加します。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のGUIは異なるOS上で動作する必要がある」を、画面のサイズ、画面の解像度など、さまざまなロケールで異なるPLAFを使用します。したがって、ピクセルの完全なレイアウトには役立ちません。代わりに、レイアウトマネージャや[それらの組み合わせ](http://stackoverflow.com/a/5630271/418556)と[空白](http://stackoverflow.com/a/17874718/)のレイアウトパディングとボーダーを使用してください。 418556)。 2.すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 .. –
Javaスタイルのガイドについてお読みください。変数名は常に小文字で始まります。 CONSTANTSを除きます。それから私は示唆します: "静的"対 "非静的"メソッド/フィールドについて少しお読みください。あなたは静かにその場所全体を使用しています。それは単に良いアイデアではありません。第三:それをしないでください。あなたはsetText1、setText2などを行う複数の「もの」を持ってはいけません。それは単に非常に悪い習慣です。 **名前の後ろにあるものが何であるかを示す名前を使用する**。 – GhostCat
.. 3)画像を取得する方法の1つは、[このQ&A](http://stackoverflow.com/q/19209650/418556)に表示されている画像にホットリンクすることです。 4)一般的なJava命名法(命名規則、例えば 'EachWordUpperCaseClass'、' firstWordLowerCaseMethod() '、' firstWordLowerCaseAttribute'が 'UPPER_CASE_CONSTANT'でない限り)を学び、それを一貫して使用してください。 –