JRadioButton と JLabel の 2 つのコンポーネントを持つ GridBagLayout があります。ラベル内のテキストは長さが異なります。この GridbagLayout は JPanel に追加されます。そのため、多くのコンポーネントがある場合、最終的にそれらがうまく整列しません。これが私が意味することです:
-----radio btn-label-----
---radio btn-label --
-------radio btn-lbl-----
しかし、私は次のものが必要です:
-radio btn-label -
-radio btn-label -
-radio btn-lbl -
これは、今のところ私のグリッドがどのように見えるかです:
public class MyPanel extends JPanel {
private JLabel info;
private JRadioButton select;
public MyPanel() {
this.achiev = achiev;
achievementInfo = new JLabel();
selectAchiev = new JRadioButton();
setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = 0;
constraints.gridy = 0;
constraints.anchor = GridBagConstraints.LINE_START;
add(selectAchiev, constraints);
StringBuilder builder = new StringBuilder();
builder.append("<html><b>").append("some text").append("</b><p>");
builder.append("<i>").append("some more text").append("</i>");
info.setText(builder.toString());
constraints.gridx = 1;
constraints.gridy = 0;
constraints.fill = GridBagConstraints.HORIZONTAL;
add(info, constraints);
}
//--------------
JPanel panel = new JPanel(new BoxLayout(), BoxLayout.YAXIS);
for(int i = 0; i < 10; ++i) {
panel.add(new MyPanel());
}