school/cs240/record-indexer/src/client/components/loginWindow/LoginWindow.java

75 lines
2.2 KiB
Java

package client.components.loginWindow;
import client.communication.Communicator;
import client.communication.errors.RemoteServerErrorException;
import client.communication.errors.UnauthorizedAccessException;
import shared.communication.params.ValidateUser_Param;
import shared.communication.responses.ValidateUser_Res;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginWindow extends JFrame {
private Communicator communicator;
private JPasswordField passwordTextField;
private JTextField userTextField;
private JButton loginButton;
public LoginWindow(Communicator communicator) {
this.communicator = communicator;
setupView();
}
private void setupView() {
this.setTitle("Login to Indexer");
this.setSize(350, 130);
this.setResizable(false);
this.setLayout(new FlowLayout());
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JLabel usernameLabel = new JLabel("Username: ");
this.add(usernameLabel);
userTextField = new JTextField();
userTextField.setPreferredSize(new Dimension(250, 30));
this.add(userTextField);
JLabel passwordLabel = new JLabel("Password: ");
this.add(passwordLabel);
passwordTextField = new JPasswordField();
passwordTextField.setPreferredSize(new Dimension(250, 30));
this.add(passwordTextField);
loginButton = new JButton("Login");
this.add(loginButton);
JButton exitButton = new JButton("Exit");
exitButton.addActionListener(exitListener);
this.add(exitButton);
}
public void addLoginListener(ActionListener actionListener) {
loginButton.addActionListener(actionListener);
}
private ActionListener exitListener = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(1);
}
};
public String getUsername() {
return this.userTextField.getText();
}
public String getPassword() {
return this.passwordTextField.getText();
}
}