网格布局不起作用
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()));
这是我的代码:
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()));