Repository navigation
Expand file tree
/
Copy pathRegisterScreen.java
More file actions
104 lines (85 loc) · 4.23 KB
/
Copy pathRegisterScreen.java
File metadata and controls
104 lines (85 loc) · 4.23 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
103
104
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.List;
public class RegisterScreen extends JFrame{
private List<User> userArray = new ArrayList<>();
public List<User> getUserArray() {
return userArray;
}
// Constructor
public RegisterScreen() {
// Frame Settings
setTitle("E-Commerce Application / Register"); // 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
//setLocationRelativeTo(null); // place frame to center on the
// Main Panel
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
mainPanel.setBorder(BorderFactory.createEmptyBorder(20,30,20,30)); // for space
// Usurname 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 registerButton = new JButton("Register");
JButton backButton = new JButton("Back");
buttonPanel.add(registerButton);
buttonPanel.add(backButton);
// Action Listener for registerButton
registerButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Get datas from fields
String newUsername = usernameField.getText();
String newPassword = new String(passwordField.getPassword());
// Creating instance
User newUser = new User(newUsername, newPassword);
// Process that read file for save
FileManager<User> userManager = new FileManager("users.txt", new User());
List<User> users = userManager.loadFromFile();
// Check username exist
boolean exists = users.stream().anyMatch(u -> u.getUsername().equals(newUsername));
if (exists) {
JOptionPane.showMessageDialog(null, "This username is already taken!");
}
else {
users.add(newUser); // add user to our user array
userManager.saveToFile(users); // save user to file
JOptionPane.showMessageDialog(null, "Registration successful!");
dispose();
EntryScreen entryScreen = new EntryScreen();
}
}
});
// Action Listener for backButton
backButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Change frame RegisterScreen --> EntryScreen
dispose();
EntryScreen entryScreen = new EntryScreen();
}
});
// Add Panel
mainPanel.add(userPanel);
mainPanel.add(passPanel);
mainPanel.add(Box.createVerticalStrut(20));
mainPanel.add(buttonPanel);
add(mainPanel); // ana paneli pencereye ekle
setVisible(true); // show screen
}
}