网格布局不起作用

GridLayout doesn't work

这是我的代码:

PresidentVote(){
        setName("PresCandidate");
        setBorder(BorderFactory.createTitledBorder("Candidates for President"));

        for(int row=0; row<PresidentTable.tblNatPresident.getRowCount(); row++){
            setLayout(new GridLayout(row, 2));
            String name=PresidentTable.tblNatPresident.getValueAt(row, 0).toString();

            JLabel lblName=new JLabel(name);
            JRadioButton radioVote=new JRadioButton();
            lblName.setBorder(BorderFactory.createLineBorder(Color.RED));

            add(lblName); add(radioVote);
        }
    }

但是会出现的是这样的:

我正在努力实现这样的目标:

name | radiobutton

name | radiobutton

行数将取决于 jtables 的行数。而且只有两列。

我真的不知道我的意思是我违反了代码中的某些内容吗?或者我应该做些什么才能让它正常工作?请帮忙,非常感谢:)

如果要将单选按钮和标签放在一个单元格中,请将它们包裹在一个面板中,然后将面板放入单元格中。请记住,面板需要它自己的布局(尽管默认的流式布局可能适合您)

作为替代方案,我认为设置单选按钮的文本(标签?)可能更简洁(尽管灵活性稍差)。

对于初学者,您需要在循环之前移动您的 setLayout,因为它只是在每次迭代时无缘无故地覆盖它,因此您需要将 y 值更改为行数。其次更改交换网格布局中的值,使其看起来像这样...

setLayout(new GridLayout(2, PresidentTable.tblNatPresident.getRowCount()));