I have a JFrame
- SuperTest
and JPanel
- SuperLogin
. The login panel has the username and password input fields and a login button. I want it to look like this:
but it looks like the pic below, with input fields having too huge height and width.
SuperTest.java:
import javax.swing.*;
public class SuperTest extends JFrame {
public SuperTest() {
add(new SuperLogin());
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(600, 400);
}
public static void main(String[] args) {
SuperTest test = new SuperTest();
}
}
SuperLogin.java:
import javax.swing.*;
import java.awt.*;
public class SuperLogin extends JPanel {
private JButton loginButton =
new JButton("Login");
private TextField usernameField =
new TextField();
private TextField passwordField =
new TextField();
public SuperLogin() {
BoxLayout layout =
new BoxLayout(this, BoxLayout.Y_AXIS);
setLayout(layout);
add(new JLabel("Login"));
add(usernameField);
add(passwordField);
add(loginButton);
componentSetup();
}
private void componentSetup() {
loginButton.setSize(20, 10);
usernameField.setSize(100, 50);
passwordField.setSize(100, 50);
loginButton.setMinimumSize(new Dimension(20, 10));
usernameField.setMinimumSize(new Dimension(100, 50));
passwordField.setMinimumSize(new Dimension(100, 50));
loginButton.setPreferredSize(new Dimension(20, 10));
usernameField.setPreferredSize(new Dimension(100, 50));
passwordField.setPreferredSize(new Dimension(100, 50));
}
}
I read that setting min, preferred size would be enough, but it looks like it's not.