package JavaCompleteCourse;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class day15 {
private static final String DB_URL = "jdbc:mysql://your_database_url:your_port/your_database_name";
private static final String DB_USER = "your_database_username";
private static final String DB_PASSWORD = "your_database_password";
private JFrame frame;
private JTextField usernameField;
private JPasswordField passwordField;
private JPanel loginPanel;
private JPanel welcomePanel;
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
try {
new day15();
} catch (Exception e) {
e.printStackTrace();
}
});
}
public day15() {
frame = new JFrame("Login Example");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
loginPanel = createLoginPanel();
welcomePanel = createWelcomePanel();
frame.setContentPane(loginPanel);
frame.setVisible(true);
}
private JPanel createLoginPanel() {
JPanel panel = new JPanel();
panel.setLayout(null);
JLabel usernameLabel = new JLabel("Username:");
usernameLabel.setBounds(50, 50, 80, 25);
panel.add(usernameLabel);
JLabel passwordLabel = new JLabel("Password:");
passwordLabel.setBounds(50, 80, 80, 25);
panel.add(passwordLabel);
usernameField = new JTextField();
usernameField.setBounds(150, 50, 150, 25);
panel.add(usernameField);
passwordField = new JPasswordField();
passwordField.setBounds(150, 80, 150, 25);
panel.add(passwordField);
JButton loginButton = new JButton("Login");
loginButton.setBounds(50, 120, 100, 25);
panel.add(loginButton);
JButton registerButton = new JButton("Register");
registerButton.setBounds(200, 120, 100, 25);
panel.add(registerButton);
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
char[] passwordChars = passwordField.getPassword();
String password = new String(passwordChars);
if (login(username, password)) {
frame.setContentPane(welcomePanel);
frame.revalidate();
} else {
JOptionPane.showMessageDialog(frame, "Invalid username or password.");
}
}
});
registerButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
char[] passwordChars = passwordField.getPassword();
String password = new String(passwordChars);
if (register(username, password)) {
JOptionPane.showMessageDialog(frame, "Registration successful!");
} else {
JOptionPane.showMessageDialog(frame, "Registration failed.");
}
}
});
return panel;
}
private JPanel createWelcomePanel() {
JPanel panel = new JPanel();
panel.setLayout(null);
JLabel welcomeLabel = new JLabel("Welcome!");
welcomeLabel.setBounds(150, 50, 100, 25);
panel.add(welcomeLabel);
JButton logoutButton = new JButton("Logout");
logoutButton.setBounds(150, 100, 100, 25);
panel.add(logoutButton);
logoutButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setContentPane(loginPanel);
frame.revalidate();
usernameField.setText("");
passwordField.setText("");
}
});
return panel;
}
private boolean login(String username, String password) {
try {
Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
String query = "SELECT * FROM users WHERE username=? AND password=?";
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, username);
preparedStatement.setString(2, password);
ResultSet resultSet = preparedStatement.executeQuery();
return resultSet.next();
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
private boolean register(String username, String password) {
try {
Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
String query = "INSERT INTO users (username, password) VALUES (?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, username);
preparedStatement.setString(2, password);
int result = preparedStatement.executeUpdate();
return result > 0;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}