From adc60671da67b56414dbe37d37d6039c69a4e351 Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 25 Nov 2013 22:12:43 +0200 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20=D0=B2=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0=D1=86=D0=B8=D0=BE=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tse/lr4/LoginPanel.java | 65 ++++++++++++++++++++++++------------ src/tse/lr4/LoginWindow.java | 2 +- 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/src/tse/lr4/LoginPanel.java b/src/tse/lr4/LoginPanel.java index f5e0ee1..31186e9 100644 --- a/src/tse/lr4/LoginPanel.java +++ b/src/tse/lr4/LoginPanel.java @@ -1,15 +1,15 @@ package tse.lr4; -import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; +import javax.swing.JFrame; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; import org.netbeans.lib.awtextra.AbsoluteConstraints; import org.netbeans.lib.awtextra.AbsoluteLayout; @@ -25,10 +25,12 @@ public class LoginPanel extends JPanel { private final JPasswordField passwordTextField, confirmPasswordTextField; private final JButton loginButton, signupButton, cancelButton; + private JFrame parentFrame; private boolean state; - public LoginPanel() { + public LoginPanel(JFrame parent) { state = STATE_LOGIN; + parentFrame = parent; setLayout(new AbsoluteLayout()); @@ -61,20 +63,16 @@ public class LoginPanel extends JPanel { public void actionPerformed(ActionEvent evt) { if (state == STATE_LOGIN) { // Показываем форму регистрации - loginLabel.setText("Пароль"); - passwordLabel.setText("Повторите пароль"); - loginTextField.setVisible(false); confirmPasswordTextField.setVisible(true); loginButton.setVisible(false); + parentFrame.setTitle("Регистрация в системе"); state = STATE_SIGNUP; } else { // Завершаем регистрацию и переходим в режим авторизации - loginLabel.setText("Логин"); - passwordLabel.setText("Пароль"); - loginTextField.setVisible(true); - confirmPasswordTextField.setVisible(false); - loginButton.setVisible(true); - state = STATE_LOGIN; + if (!checkSignUpCredentials()) { + return; + } + backToAuth(); } } }); @@ -87,16 +85,10 @@ public class LoginPanel extends JPanel { public void actionPerformed(ActionEvent evt) { if (state == STATE_SIGNUP) { // Отменяем регистрацию - loginLabel.setText("Логин"); - passwordLabel.setText("Пароль"); - loginTextField.setVisible(true); - confirmPasswordTextField.setVisible(false); - loginButton.setVisible(true); - state = STATE_LOGIN; + backToAuth(); } else { // Закрываем окно - Window window = SwingUtilities.getWindowAncestor(LoginPanel.this); - window.setVisible(false); + parentFrame.setVisible(false); } } }); @@ -104,6 +96,37 @@ public class LoginPanel extends JPanel { confirmPasswordTextField = new JPasswordField(); confirmPasswordTextField.setHorizontalAlignment(JTextField.CENTER); - add(confirmPasswordTextField, new AbsoluteConstraints(50, 40, 245, -1)); + add(confirmPasswordTextField, new AbsoluteConstraints(50, 120, 245, -1)); + confirmPasswordTextField.setVisible(false); + } + + private void backToAuth() { + confirmPasswordTextField.setVisible(false); + loginButton.setVisible(true); + parentFrame.setTitle("Вход в систему"); + state = STATE_LOGIN; + } + + private boolean checkSignUpCredentials() { + if (loginTextField.getText().isEmpty()) { + JOptionPane.showMessageDialog(this, "Не введён логин", "Ошибка", JOptionPane.ERROR_MESSAGE); + return false; + } + String pass1 = String.valueOf( passwordTextField.getPassword() ); + String pass2 = String.valueOf( confirmPasswordTextField.getPassword() ); + if (!pass1.equals(pass2)) { + JOptionPane.showMessageDialog(this, "Пароли не совпадают", "Ошибка", JOptionPane.ERROR_MESSAGE); + return false; + } + if (pass1.isEmpty()) { + JOptionPane.showMessageDialog(this, "Не введён пароль", "Ошибка", JOptionPane.ERROR_MESSAGE); + return false; + } + if (pass1.length() < 4) { + JOptionPane.showMessageDialog(this, "Слишком короткий пароль", "Ошибка", JOptionPane.ERROR_MESSAGE); + return false; + } + JOptionPane.showMessageDialog(this, "Регистрация завершена"); + return true; } } diff --git a/src/tse/lr4/LoginWindow.java b/src/tse/lr4/LoginWindow.java index a66ff17..50fd8b7 100644 --- a/src/tse/lr4/LoginWindow.java +++ b/src/tse/lr4/LoginWindow.java @@ -16,7 +16,7 @@ public class LoginWindow extends JFrame { setLocationByPlatform(true); setDefaultCloseOperation(HIDE_ON_CLOSE); - LoginPanel panel = new LoginPanel(); + LoginPanel panel = new LoginPanel(this); panel.setPreferredSize(new Dimension(350, 230)); add(panel); pack();