我不知道如何去做我有这个框架我希望填充一个JTable并添加一个复选框.
public static void update_table() {
try {
String sql="SELECT * FROM equipments";
PreparedStatement update = con.prepareStatement(sql);
ResultSet result = update.executeQuery();
table.setModel(dbutils.resultSetToTableModel(result));
table.setVisible(true);
} catch (sqlException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
解决方法:
我假设您想要添加一个在包含复选框的数据库中找不到的其他列,以便您可以选择行?
如果是这样,那么您可以使用包装器TableModel.
这是一个未经测试的示例,可能会有所帮助:
public class CheckBoxWrapperTableModel extends AbstractTableModel
{
private Map<Integer, Boolean> checkBoxes = new HashMap<Integer, Boolean>();
private TableModel model;
private String columnName;
public CheckBoxWrapperTableModel(TableModel model, String columnName)
{
this.model = model;
this.columnName = columnName;
}
@Override
public String getColumnName(int col)
{
return (column > 0) ? model.getColumnName(col - 1) : columnName;
}
@Override
public int getRowCount()
{
return model.getRowCount();
}
@Override
public int getColumnCount()
{
return model.getColumnCount() + 1;
}
@Override
public Object getValueAt(int row, int col)
{
if (col > 0)
return model.getValueAt(row, col - 1);
else
{
Object value = checkBoxes.get(row);
return (value == null) ? Boolean.FALSE : value;
}
}
@Override
public boolean isCellEditable(int row, int col)
{
if (col > 0)
return model.isCellEditable(row, col - 1);
else
return true;
}
@Override
public void setValueAt(Object value, int row, int col)
{
if (col > 0)
model.setValue(value, row, col - 1);
else
checkBoxes.put(row, value);
fireTableCellUpdated(row, col);
}
@Override
public Class getColumnClass(int col)
{
return (col > 0) ? model.getColumnClass(col - 1) : Boolean.class;
}
}
如果模型有效,那么您将使用以下代码的模型:
//table.setModel(dbutils.resultSetToTableModel(result));
TableModel utilsModel = dbutils.resultSetToTableModel(result);
TableModel wrapperModel = new CheckBoxWrapperTableModel(utilsModel, "Select");
table.setModel( wrapperModel );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。