I just started learning Swing with a simple code to create login form.
package swingbeginner;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginForm {
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel inputLabel;
    private JPanel inputPanel;
    private JPanel controlPanel;
    private JLabel statusLabel;
    public LoginForm() {
        prepareGUI();
    }
    public static void main(String[] args) {
        LoginForm loginForm = new LoginForm();
        loginForm.loginProcess();
    }
    private void prepareGUI() {
        mainFrame = new JFrame("Login");
        mainFrame.setSize(600, 600);
        mainFrame.setLayout(new FlowLayout());
        headerLabel = new JLabel("",JLabel.CENTER );
        statusLabel = new JLabel("",JLabel.CENTER);   
        statusLabel.setSize(350,100);
        mainFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent) {
            }
        });
        inputLabel = new JLabel();
        inputLabel.setLayout(null);
        inputPanel = new JPanel();
        inputPanel.setLayout(null);
        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());
        mainFrame.add(headerLabel);
        mainFrame.add(inputLabel);
        mainFrame.add(inputPanel);
        mainFrame.add(controlPanel);
        mainFrame.add(statusLabel);
        mainFrame.setVisible(true);
    }
    private void loginProcess() {
        headerLabel.setText("Please Login to Continue!");
        JLabel usernameLabel = new JLabel("Username");
        usernameLabel.setBounds(10,20,80,25);
        JLabel passwordLabel = new JLabel("Password");
        passwordLabel.setBounds(10, 20, 80, 25);
        JTextField usernameTextbox = new JTextField();
        usernameTextbox.setBounds(100,20,165,25);
        JPasswordField passwordTextbox = new JPasswordField();
        passwordTextbox.setBounds(100,20,165,25);
        JButton loginButton = new JButton("Login");
        JButton cancelButton = new JButton("Cancel");
        loginButton.setActionCommand("Login");
        cancelButton.setActionCommand("Cancel");
        loginButton.addActionListener(new ButtonClickListener());
        cancelButton.addActionListener(new ButtonClickListener());
        inputLabel.add(usernameLabel);
        inputPanel.add(usernameTextbox);
        inputLabel.add(passwordLabel);
        inputPanel.add(passwordTextbox);
        controlPanel.add(loginButton);
        controlPanel.add(cancelButton);
        mainFrame.setVisible(true);     
    }
    private class ButtonClickListener implements ActionListener {
        public void actionPerformed(ActionEvent actionEvent) {
            String command = actionEvent.getActionCommand();
            if(command.equals("Login")) {
                statusLabel.setText("Logging In");
            }
            else if(command.equals("Cancel")) {
                statusLabel.setText("Login Cancelled");
            }
        }
    }
}
My code displays header along with Login and Cancel button. But the Labels/Text field (Username and Password) are not been displayed in the panel.
Where am I going wrong?
 
     
     
     
     
     
    