Repository navigation
Expand file tree
/
Copy pathEntryScreen.java
More file actions
102 lines (85 loc) · 4.14 KB
/
Copy pathEntryScreen.java
File metadata and controls
102 lines (85 loc) · 4.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.List;
public class EntryScreen extends JFrame{
public EntryScreen() {
// Frame Settings
setTitle("E-Commerce Application / Entry"); // frame title
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // closes the entire application
setSize(400, 250); // set frame size
setResizable(false); // changeable or unchengeable frame size
setLocationRelativeTo(null); // place frame to center on the screen
// Main Panel (vertical location)
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
mainPanel.setBorder(BorderFactory.createEmptyBorder(20,30,20,30)); // for space
// Username Panel
JPanel userPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JLabel userLabel = new JLabel("Username: ");
JTextField usernameField = new JTextField(15); // number of column
usernameField.setMaximumSize(usernameField.getPreferredSize());
userPanel.add(userLabel, BorderLayout.WEST);
userPanel.add(usernameField, BorderLayout.CENTER);
// Password Panel
JPanel passPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JLabel passLabel = new JLabel("Password: ");
JPasswordField passwordField = new JPasswordField(15);
passwordField.setMaximumSize(passwordField.getPreferredSize());
passPanel.add(passLabel, BorderLayout.WEST);
passPanel.add(passwordField, BorderLayout.CENTER);
// Button Panel
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 15, 10));
JButton loginButton = new JButton("Login");
JButton registerButton = new JButton("Register");
buttonPanel.add(loginButton);
buttonPanel.add(registerButton);
// Action Listener for loginButton
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Get datas from fields
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
// Process that read file for save
FileManager<User> userManager = new FileManager<>("users.txt", new User());
List<User> users = userManager.loadFromFile();
// Check if a matching user exists
User matchedUser = null;
for (User user : users) {
if (user.getUsername().equals(username) &&
user.getPassword().equals(password)) {
matchedUser = user;
Session.user = matchedUser;
break; // when you find match break loop
}
}
if (matchedUser != null) {
// Change frame --> EntryScreen to ShoppingScreen
dispose();
ShoppingScreen sc = new ShoppingScreen();
}
else {
JOptionPane.showMessageDialog(null, "Wrong username or password!");
}
}
});
// ActionListener for registerButton
registerButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Change frame --> EntryScreen to RegisterScreen
setVisible(false);
RegisterScreen rs = new RegisterScreen();
}
});
// Add lower panels to main panel
mainPanel.add(userPanel);
mainPanel.add(passPanel);
mainPanel.add(Box.createVerticalStrut(20));
mainPanel.add(buttonPanel);
add(mainPanel); // Add main panel to frame
setVisible(true);
}
}