[英]How to add new column into JTable with JCheckboxes for each rows
I want a Jtable having three columns where two columns is selected from Database and third column need to have JcheckBoxes for each rows 我想要一个具有三列的Jtable,其中从数据库中选择两列,第三列的每一行都需要有JcheckBoxes
I have a code like this 我有这样的代码
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(columns);
table = new JTable();
table.setModel(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
table.setFillsViewportHeight(true);
JScrollPane scroll = new JScrollPane(table);
TableColumn tc = table.getColumnModel().getColumn(2);
tc.setCellEditor(table.getDefaultEditor(Boolean.class));
tc.setCellRenderer(table.getDefaultRenderer(Boolean.class));
frame.getContentPane().add(scroll);
String col_1 = "";
Integer col_2 = 0;
try
{
////DefaultTableModel default_model = new DefaultTableModel();
////default_model.setColumnIdentifiers(columns);
((DefaultTableModel) model).setColumnIdentifiers(columns);
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hdb","root","root");
Statement stmnt = con.createStatement();
java.sql.ResultSet rs=stmnt.executeQuery("select col_1,col_2 from databaseTable");
while(rs.next())
{
act_name = rs.getString("col_1");
time_in_min = rs.getInt("col_2");
model.addRow(new Object[]{col_1,col_2,new Boolean(false)});
//////((DefaultTableModel) model).addRow(new Object[]{col_1,col_2, Boolean.FALSE});
}
con.close();
}catch(Exception e)
{
e.printStackTrace();
}
} }
It just gives the column with false value not the checkboxes 它只是给具有错误值的列而不是复选框
Override to return the right column class 重写以返回正确的列类
class MyTableModel extends DefaultTableModel{
public Class<?> getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}
}
And use it as your table model. 并将其用作表模型。
These lines 这些线
TableColumn tc = table.getColumnModel().getColumn(2);
tc.setCellEditor(table.getDefaultEditor(Boolean.class));
tc.setCellRenderer(table.getDefaultRenderer(Boolean.class));
will not be needed. 不需要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.