我在JPanel中有5個組件。 一切看起來順利,我已經添加了前4個組件。 但是,當我嘗試將第五個組件添加到JPanel時,組件之間的間距因任何原因而發生更改!Java GridBagConstraints
無第五部分:
First Name: [..............]
Last Name: [..............]
有了:
First Name:---------------- [.............]
Last Name:----------------- [.............]
What is your favorite sport:
假裝上面的標籤和文本框之間的虛線是空間
標籤和文本框的變化之間的間距! 這是我的代碼,請幫助我!
public static void main(String[] args)
{
JFrame frame = new JFrame("Survey");
frame.setSize(800, 600);
frame.setLayout(new FlowLayout(FlowLayout.CENTER));
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p1 = new JPanel(new GridBagLayout());
//LINE.START = Top Left Corner
frame.add(p1);
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 10, 10);
JLabel lblFirstN = new JLabel("First Name:");
JLabel lblLastN = new JLabel("Last Name:");
JLabel lblFavSport = new JLabel("What is your favorite sport:");
JTextField txtFirstN = new JTextField();
txtFirstN.setPreferredSize(new Dimension(100, 20));
JTextField txtLastN = new JTextField();
txtLastN.setPreferredSize(new Dimension(100, 20));
gbc.gridx = 0;
gbc.gridy = 0;
p1.add(lblFirstN, gbc);
gbc.gridx = 1;
gbc.gridy = 0;
p1.add(txtFirstN, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
p1.add(lblLastN, gbc);
gbc.gridx = 1;
gbc.gridy = 1;
p1.add(txtLastN, gbc);
//this block of code is what is screwing me
gbc.gridx = 0;
gbc.gridy = 2;
p1.add(lblFavSport, gbc);
}
請問,有人可以迴應。 –
問題是什麼?你是否試圖將底部標籤與其他標籤對齊? – Reimeus
我剛發現,如果我減少JLabel的文本數量,間距問題就會消失。所以是的,我試圖將底部標籤與其他標籤對齊,但如果文本太長,導致間距問題,並且在這種情況下,「您最喜歡的運動是什麼」太長了.........這沒有意義。 –