通常情況下,我對Swing和不同的佈局並沒有那麼壞,但是這個確實讓我感到困惑。GridBagLayout - 不同的行大小
以下使用GridBagLayout的圖表出現了什麼問題?每個厚的rectange都是一個JPanel。 細線只是幫助正確的y值。
提前致謝!
package at;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GridMask extends JFrame {
JPanel jPanel1, jPanel2, jPanel3, jPanel4, jPanel5, jPanel6;
public GridMask() {
unimportantStuff();
GridBagLayout gbl = new GridBagLayout();
setLayout(gbl);
GridBagConstraints gbc;
gbc = getGbc(0, 0, 3, 1, 0.5);
gbl.setConstraints(jPanel1, gbc);
gbc = getGbc(1, 0, 4, 1, 0.75);
gbl.setConstraints(jPanel2, gbc);
gbc = getGbc(2, 0, 3, 1, 0.5);
gbl.setConstraints(jPanel3, gbc);
gbc = getGbc(0, 3, 3, 1, 0.5);
gbl.setConstraints(jPanel4, gbc);
gbc = getGbc(1, 4, 2, 1, 0.25);
gbl.setConstraints(jPanel5, gbc);
gbc = getGbc(2, 3, 3, 1, 0.5);
gbl.setConstraints(jPanel6, gbc);
add(jPanel1);
add(jPanel2);
add(jPanel3);
add(jPanel4);
add(jPanel5);
add(jPanel6);
setVisible(true);
}
private GridBagConstraints getGbc(int x, int y, int height, int width, double weightY) {
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridheight = height;
gbc.gridwidth = width;
gbc.fill = GridBagConstraints.BOTH;
gbc.weightx = 1.0;
gbc.weighty = weightY;
return gbc;
}
private void unimportantStuff() {
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jPanel1.setBorder(BorderFactory.createLineBorder(Color.BLACK));
jPanel2.setBorder(BorderFactory.createLineBorder(Color.BLACK));
jPanel3.setBorder(BorderFactory.createLineBorder(Color.BLACK));
jPanel4.setBorder(BorderFactory.createLineBorder(Color.BLACK));
jPanel5.setBorder(BorderFactory.createLineBorder(Color.BLACK));
jPanel6.setBorder(BorderFactory.createLineBorder(Color.BLACK));
}
public static void main(String[] args) {
new GridMask();
}
}
結果是一個JFrame,其中兩行具有不同的高度,但在一個行中的細胞具有所有相同的高度。
我不明白你在問什麼。圖表對我來說看起來很好。發佈你的[SSCCE](http://www.sscce.org/)來證明問題。 – camickr
@camickr:已添加; MarkW:對不起,只是一個錯字 – NeedCoffee