这是我的代码:
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);
}
}
但是出现的那个看起来像这样:
我试图达到这样的目的:
名称|单选按钮
名称|单选按钮
,行数取决于jtables的行数。并且只有两列。
我真的不知道我的意思是我违反了代码中的内容吗?还是有什么我应该为它正确工作?请非常感谢你:))
答案 0 :(得分:1)
如果您希望将单选按钮和标签放在一个单元格中,请将它们包裹在面板中,然后将面板放入单元格中。请记住,面板需要它自己的布局(尽管默认的流程布局可能适合你)
作为替代方案,我认为设置单选按钮的文本(标签?)可能更清晰(虽然灵活性稍差)。
答案 1 :(得分:1)
对于初学者,您需要在循环之前移动setLayout,因为它无缘无故地覆盖每次迭代,因此您需要将y值更改为行数。其次,更改交换网格布局中的值,使其看起来像这样......
setLayout(new GridLayout(2, PresidentTable.tblNatPresident.getRowCount()));