Posted on

GDHH

import javax.swing.*;
import java.awt.*;

// Subclass extending BasicWindow for a login window
public class LoginWindow extends BasicWindow {
    private JLabel usernameLabel, passwordLabel;
    private JTextField usernameField;
    private JPasswordField passwordField;
    private JButton loginButton;

    public LoginWindow(String title, int width, int height) {
        super(title, width, height);

        // Components specific to LoginWindow
        usernameLabel = new JLabel("Username:");
        passwordLabel = new JLabel("Password:");
        usernameField = new JTextField(20);
        passwordField = new JPasswordField(20);
        loginButton = new JButton("Login");

        // Layout setup using BorderLayout
        JPanel panel = new JPanel(new BorderLayout());
        JPanel loginPanel = new JPanel(new GridLayout(3, 2));

        loginPanel.add(usernameLabel);
        loginPanel.add(usernameField);
        loginPanel.add(passwordLabel);
        loginPanel.add(passwordField);
        loginPanel.add(new JLabel()); // Empty label for spacing
        loginPanel.add(loginButton);

        panel.add(loginPanel, BorderLayout.CENTER);
        add(panel);

        // Set up additional functionality
        loginButton.addActionListener(e -> {
            String username = usernameField.getText();
            char[] passwordChars = passwordField.getPassword();
            String password = new String(passwordChars);
            JOptionPane.showMessageDialog(this, "Logging in with Username: " + username + " and Password: " + password);
        });
    }
}