JPanel new window contents not changing coordinates and sizes

Viewed 33

I am trying to redirect the login page from my GUI, to a Registration page when clicking the "Register" button. However, when displaying the new page, the content has, somehow, some default coordinates and sizes which I can't manage to change. These are located in the "CONTENTS OF THE REGISTER PAGE" commented section. No matter what "X", "Y", width and height I write, the labels and text fields won't move or resize. I am not sure what am I doing wrong.

Below is the code:

package Panel;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MainPanel {
    JFrame frame;
    JPanel login, register, home;

    Container container;
    public MainPanel() {

        //-------------------------------------------------//
        //----------CONTENTS OF THE LOGIN PAGE-------------//
        //-------------------------------------------------//

        //-----------------Login Page Labels Settings--------

        //Title Label
        JLabel loginLabel = new JLabel();
        loginLabel.setText("You need to login to be able to use this system");
        loginLabel.setBounds(25, 10, 500, 30);
        loginLabel.setFont(new Font(loginLabel.getFont().getName(), loginLabel.getFont().getStyle(), 14));

        //Username label
        JLabel userNameField = new JLabel();
        userNameField.setText("Username");
        userNameField.setBounds(150, 55, 250, 30);

        //Password label
        JLabel passwordField = new JLabel();
        passwordField.setText("Password");
        passwordField.setBounds(150, 130, 250, 30);

        //Registration question label
        JLabel registerField = new JLabel();
        registerField.setText("You don't have an account?");
        registerField.setBounds(55, 230, 300, 30);

        //----------------Login Page Textfield Settings----------------

        //Username input field
        JTextField userNameTextField = new JTextField();
        userNameTextField.setBounds(85, 90, 200, 30);

        //Password input field
        JTextField passwwordTextField = new JTextField();
        passwwordTextField.setBounds(85, 160, 200, 30);


        //------------------Buttons Settings-------------------

        //Login button
        JButton loginSubmitButton = new JButton("Login");
        loginSubmitButton.setBounds(135, 200, 100, 20);
        loginSubmitButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setContentPane(home);
                frame.setSize(600, 500);
                home.revalidate();
            }
        });

        //Register button
        JButton registerButton = new JButton("Register");
        registerButton.setBounds(220, 236, 100, 20);
        registerButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setContentPane(register);
                register.revalidate();
            }
        });

        //-----------------Login Page Content Settings---------------
        login = new JPanel();
        login.add(loginLabel);
        login.add(userNameField);
        login.add(passwordField);
        login.add(registerField);
        login.add(userNameTextField);
        login.add(passwwordTextField);
        login.add(loginSubmitButton);
        login.add(registerButton);


        //----------------------------------------------------//
        //-----------CONTENTS OF THE REGISTER PAGE------------//
        //----------------------------------------------------//

        //-----------------Register Page Labels Settings--------
        //Title Label
        JLabel registerLabel = new JLabel();
        registerLabel.setText("Please use the below fields to register");
        registerLabel.setBounds(70, 10, 500, 90);
        registerLabel.setFont(new Font(registerLabel.getFont().getName(), registerLabel.getFont().getStyle(), 14));


        //Username label
        JLabel registerUserNameField = new JLabel();
        registerUserNameField.setText("Username");
        registerUserNameField.setBounds(25, 10, 250, 30);

        //Password label
        JLabel registerPasswordField = new JLabel();
        registerPasswordField.setText("Password");

        //----------------Register Page Textfield Settings----------------

        //Username input field
        JTextField registerUserNameTextField = new JTextField();
        registerUserNameTextField.setBounds(85, 90, 200, 30);

        //Password input field
        JTextField registerPasswwordTextField = new JTextField();
        registerPasswwordTextField.setBounds(85, 160, 200, 30);

        //-----------------Register Page Content Settings--------------
        register = new JPanel();
        register.add(registerLabel);
        register.add(registerUserNameField);
        register.add(registerPasswordField);
        register.add(registerUserNameTextField);
        register.add(registerPasswwordTextField);

        
        
        //-------------------------------------------------//
        //-----------------Frame settings-------------------
        //-------------------------------------------------//
        frame = new JFrame("Final Java Project");
        frame.setContentPane(login);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 500);
        frame.setLayout(null);
        frame.setVisible(true);
    }
}
0 Answers
Related