gpt4 book ai didi

java - 如何使用每行的 JCheckboxes 将新列添加到 JTable 中

转载 作者:行者123 更新时间:2023-11-29 11:19:24 27 4
gpt4 key购买 nike

我想要一个具有三列的 Jtable,其中两列是从数据库中选择的,第三列需要每行都有 JcheckBox

我有这样的代码

    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();
}

}

它只是给出具有错误值的列,而不是复选框

最佳答案

重写以返回正确的列类

class MyTableModel extends DefaultTableModel{

public Class<?> getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}
}

并将其用作您的表格模型。
这些行

TableColumn tc = table.getColumnModel().getColumn(2);
tc.setCellEditor(table.getDefaultEditor(Boolean.class));
tc.setCellRenderer(table.getDefaultRenderer(Boolean.class));

不需要。

关于java - 如何使用每行的 JCheckboxes 将新列添加到 JTable 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39190178/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com