Dzień dobry, w ramach poprawy umiejętności w Javie wraz z kolegą postanowiliśmy zrobić symulator bankomatu. Po uruchomieniu poniższego programu, gdy zmieniam myszką rozmiar okna fBankomatMain, to pole tfPin zmienia swój rozmiar rozszerzając się na całej powierzchni fBankomatMain.

(1) Czy jest możliwość jego zablokowania w takiej pozycji w jakiej został zdefiniowany?
(2) Dlaczego tfPin się tak zachowuje a tfLogin nie ?
(3) Jak po wciśnięciu btnZaloguj sprawić by on znikł ? Próbowałem z pomocą

fBankomatMain.remove(btnZaloguj);

oraz

btnZaloguj.setVisible(false);

ale remove mnie nie satysfakcjonuje a setVisible powoduję, że tfPin zachowuje się tak jak w przypadku zmiany rozmiaru okna myszką.

package sample;

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

public class Controller extends JFrame implements ActionListener {
    JFrame fBankomatMain;
    JTextField tfMonitorPanel;
    JButton btnZaloguj;
    JLabel lLogin;
    JLabel lPin;
    JTextField tfLogin;
    JTextField tfPin;

    public Controller(){
        fBankomatMain = new JFrame("Bankomat");
        fBankomatMain.setVisible(true);
        fBankomatMain.setBounds(750,300,430,600);
        fBankomatMain.setIconImage(new ImageIcon("icon.png").getImage());
        fBankomatMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        tfMonitorPanel = new JTextField();
        fBankomatMain.add(tfMonitorPanel);
        tfMonitorPanel.setBounds(100,60,210,210);
        tfMonitorPanel.setEditable(false);


        btnZaloguj = new JButton("Zaloguj");
        fBankomatMain.add(btnZaloguj);
        btnZaloguj.setBounds(15,60,80,20);
        btnZaloguj.addActionListener(this);

        lLogin = new JLabel("Podaj login: ");
        fBankomatMain.add(lLogin);
        lLogin.setBounds(100,60,100,15);
        lLogin.setVisible(true);

        lPin = new JLabel("Podaj pin: ");
        fBankomatMain.add(lPin);
        lPin.setBounds(100,80,100,15);

        tfLogin = new JTextField();
        fBankomatMain.add(tfLogin);
        tfLogin.setBounds(175,60,70,20);
        /*taLogin.setFont(new Font("Arial", Font.CENTER_BASELINE,14));*/
        tfLogin.setVisible(false);

        tfPin = new JTextField();
        fBankomatMain.add(tfPin);
        tfPin.setBounds(175,85,70,20);
        tfPin.setVisible(false);




    }


    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (btnZaloguj.equals(source)) {
            /*System.out.println("Działa XD");*/
            tfMonitorPanel.setVisible(false);
            tfLogin.setVisible(true);
            tfPin.setVisible(true);
            /*fBankomatMain.remove(btnZaloguj);*/



        }
    }
}

Jestem mocno początkującym adeptem Javy :)