3
這就是我想實現:GridBagLayout行爲不當。水平分佈問題
|--0--|--1--|--2--|--3--|--4--|--5--|--6--|--7--|--8--|--9--|
0 | |JLabe|l----|-----|-----|-----|-----|-----|-----|-----|
1 | | |JLabe|l----|-----|-----|-----|-----|-----|-----|
2 | | | |JLabe|l----|-----|-----|-----|-----|-----|
3 | | | |JLabe|l----|-----|-----|-----|-----|-----|
這是我迄今爲止得到的,這是接近我能得到什麼,我之後。
center.setLayout(centerLayout);
JPanel[] card = new JPanel[1]; //update as it gets longer, eventually Scoreboard.LENGTH
card[0] = new JPanel();
GridBagLayout cardLayout = new GridBagLayout();
card[0].setLayout(cardLayout);
cardLayout.setConstraints(winner, new GridBagConstraints(0, 0, 10, 1, 1, 0, GridBagConstraints.FIRST_LINE_START, GridBagConstraints.NONE, new Insets(0,0,0,0), 0, 0));
card[0].add(winner);
cardLayout.setConstraints(name, new GridBagConstraints(1, 1, 9, 1, 0.8, 0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(0,0,0,0), 0, 0));
card[0].add(name);
cardLayout.setConstraints(with, new GridBagConstraints(2, 2, 8, 1, 0.7, 0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(0,0,0,0), 0, 0));
card[0].add(with);
cardLayout.setConstraints(score, new GridBagConstraints(2, 3, 8, 1, 0.7, 0, GridBagConstraints.LAST_LINE_START, GridBagConstraints.NONE, new Insets(0,0,0,0), 0, 0));
card[0].add(score);
center.add(card[0], "card1");
this.getContentPane().add(center);
,由於某種原因它顯示是這樣的:
|--0--|--1--|--2--|--3--|--4--|--5--|--6--|--7--|--8--|--9--|
0 |JLabe|l----|-----|-----|-----|-----|-----|-----|-----|-----|
1 |JLabe|l----|-----|-----|-----|-----|-----|-----|-----|-----|
2 |JLabe|l----|-----|-----|-----|-----|-----|-----|-----|-----|
3 |JLabe|l----|-----|-----|-----|-----|-----|-----|-----|-----|
或許有展示我的文字比使用GridBagLayout的一個更合適的方式。 (它需要在不同的分辨率下工作,所以使用的佈局管理器需要靈活)
爲什麼'GridLayout'沒有'0,0','1,0','1,1'等空單元格。 – trashgod
[Overlap Layout](http://tips4java.wordpress.com/ 2009/07/26/overlap-layout /)by @camickr? –