怎么在jtable的列前面加单选框
时间: 2023-06-05 15:06:44 浏览: 60
很简单,你可以自定义 JTable 的单元格渲染器(TableCellRenderer)来实现在 JTable 的列前面加单选框。具体做法是,在自定义渲染器的 getTableCellRendererComponent 方法里,通过创建一个 JRadioButton,然后把它添加到 JPanel 中,并且把 JPanel 设置为渲染器的组件,最后返回该组件即可。具体的实现步骤可以参考下面的代码:
```
public class RadioButtonRenderer extends JPanel implements TableCellRenderer {
private JRadioButton radioButton;
public RadioButtonRenderer() {
super(new BorderLayout());
radioButton = new JRadioButton();
add(radioButton, BorderLayout.CENTER);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (isSelected) {
setBackground(table.getSelectionBackground());
} else {
setBackground(table.getBackground());
}
radioButton.setSelected((Boolean) value);
return this;
}
}
```
然后,你可以在 JTable 的列模型中设置这个渲染器,让它在需要的列上生效:
```
TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(0).setCellRenderer(new RadioButtonRenderer());
```
阅读全文