JavaでGUIを理解しようとしています。簡単なログインページの作成から始めました。ここでは、見出しパネル、本文パネル、フッター パネルをボックス レイアウト (垂直方向に積み重ね) に積み重ねています。これはすべて別の親パネルにあり、フレームのコンテンツ ペイン (中央、ボーダー レイアウト) に配置されます。ただし、親パネル内の本体パネルはすべて垂直に引き伸ばされています。それを修正するのに非常に苦労していますが、何か提案はありますか?
ここではスプリング レイアウトなどを使用したくありません。
setSize、setMinimumSize、setMaximumSize は、ここではまったく機能していないようです。
助けてください
JButton submit = new JButton("Login"); //Directly added to the frame
JLabel head1 = new JLabel("LOGIN SCREEN"); //Component of head panel
JLabel userName = new JLabel("Username "); //Component of body panel 1
JTextField userNameField = new JTextField(15); //Component of body panel 1
JLabel userNameExtra = new JLabel(" *"); //Component of body panel 1
userNameExtra.setForeground(Color.red);
JLabel pass = new JLabel("Password "); //Component of body panel 2
JPasswordField passField = new JPasswordField(15); //Component of body panel 2
JLabel passExtra = new JLabel(" *"); //Component of body panel 2
passExtra.setForeground(Color.red);
JLabel footer = new JLabel ("*This field is mandatory");
JLabel credits = new JLabel("-by Nikhil");
//---Preparing the panels with their components---
headPanel.setLayout(new BoxLayout(headPanel,BoxLayout.Y_AXIS));
headPanel.add(head1);
//userNamePanel.setLayout(new BoxLayout(userNamePanel,BoxLayout.X_AXIS));
userNamePanel.add(userName);
userName.requestFocus();
userNamePanel.add(userNameField);
userNamePanel.add(userNameExtra);
//passPanel.setLayout(new BoxLayout(passPanel,BoxLayout.X_AXIS));
passPanel.add(pass);
passPanel.add(passField);
passPanel.add(passExtra);
bodyPanel.setLayout(new BoxLayout(bodyPanel,BoxLayout.Y_AXIS));
bodyPanel.add(userNamePanel);
bodyPanel.add(passPanel);
bodyPanel.add(submit);
footerPanel.setLayout(new BoxLayout(footerPanel,BoxLayout.Y_AXIS));
footerPanel.add(footer);
//---Preparing the parent panel with its components (other panels)---
parentPanel.setLayout(new BoxLayout(parentPanel,BoxLayout.Y_AXIS));
parentPanel.add(headPanel);
parentPanel.add(bodyPanel);
parentPanel.add(footerPanel);
//---Putting the parent panel in the frame---
frame.setTitle("Login GUI Application");
frame.getContentPane().add(parentPanel,"Center");
frame.getContentPane().add(credits,"South");
frame.setSize(500,500);
frame.setVisible(true);
}
}