Hi all,
I have a simple JFrame windows with two JLabel, two JTextField and two JButton. I use SpringLayout to display controls in on the frame. But when I run the application, the windows is displayed in a very small size. Only the two buttons are displayed. But when I maximize the window all the controls are placed properly.
So, I think, the setSize() is not functioning properly. Can someone please tell me what i am doing wrong? Appreciate your help. Here's the code for this:
public class Login extends JFrame implements ActionListener {
public Login () {
super("Title");
this.getContentPane().setLayout(new BorderLayout());
JPanel btnPane = new JPanel();
btnPane.setLayout(new FlowLayout());
JPanel pane = new JPanel();
SpringLayout sp = new SpringLayout();
pane.setLayout(sp);
pane.add(lblUserName);
pane.add(txtUserName);
pane.add(lblPassword);
pane.add(txtPassword);
sp.putConstraint(SpringLayout.WEST, lblUserName, 70, SpringLayout.WEST, this);
sp.putConstraint(SpringLayout.NORTH, lblUserName, 20, SpringLayout.NORTH, this);
sp.putConstraint(SpringLayout.WEST, txtUserName, 5, SpringLayout.EAST, lblUserName);
sp.putConstraint(SpringLayout.NORTH, txtUserName, 20, SpringLayout.NORTH, this);
sp.putConstraint(SpringLayout.WEST, lblPassword, 70, SpringLayout.WEST, this);
sp.putConstraint(SpringLayout.NORTH, lblPassword, 5, SpringLayout.SOUTH, lblUserName);
sp.putConstraint(SpringLayout.WEST, txtPassword, 5, SpringLayout.EAST, lblPassword);
sp.putConstraint(SpringLayout.NORTH, txtPassword, 5, SpringLayout.SOUTH, txtUserName);
btnLogin.addActionListener(this);
btnCancel.addActionListener(this);
btnPane.add(btnLogin);
btnPane.add(btnCancel);
this.getContentPane().add("Center", pane);
this.getContentPane().add("South",btnPane);
}
public static void main (String[] args) {
Login login = new Login();
login.setSize(10, 20);
login.setLocation(200,200);
login.pack();
login.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// do some actions
}
private JLabel lblUserName = new JLabel("User name: ");
private JTextField txtUserName = new JTextField(15);
private JLabel lblPassword = new JLabel("Password : ");
private JPasswordField txtPassword = new JPasswordField(15);
private JButton btnLogin = new JButton("Login");
private JButton btnCancel = new JButton("Cancel");
}
Thanks in advance...