【发布时间】:2015-11-20 03:55:48
【问题描述】:
我有 JTable,我用 SQL 数据填充它,这是我的方法:
private void updateTable() {
try {
String sql = "SELECT number as Numver, name as Available, type FROM available_t ORDER BY number asc";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
tableAvail.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
} finally {
try {
rs.close();
pst.close();
} catch (Exception e) {
}
}
}
到目前为止一切顺利。数据显示正确。但是,我想再放一列带有复选框。当我尝试在 Eclipse 中使用向导手动创建(按钮“模型”)时,我无法添加新列,可能是因为表和列是通过方法创建的。那么,我如何添加新列,它将有复选框。然后在我选择了一些复选框后 - 当我按下 OK 按钮时,检查哪些复选框被选中并在 db 中的 TYPE 列中使用 YES 或 NO 更新它。
编辑:*** 这是我的代码,我只想将结果 true/false 转换为列中的复选框:
private JPanel contentPane;
private final JPanel panel = new JPanel();
private final JScrollPane scrollPane = new JScrollPane();
private final JTable table = new JTable();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TableExample frame = new TableExample();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TableExample() {
initGUI();
}
private void initGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
panel.setBounds(31, 11, 238, 209);
contentPane.add(panel);
panel.setLayout(null);
scrollPane.setBounds(10, 11, 218, 187);
panel.add(scrollPane);
table.setModel(new DefaultTableModel(
new Object[][] {
{"1", "Test1", "20", "false"},
{"2", "Test2", "10", "false"},
{"3", "Test3", "20", "true"},
},
new String[] {
"Id", "Test", "Rate", "T/F"
}
));
scrollPane.setViewportView(table);
}
【问题讨论】:
-
拜托你读过 Oracle 官方教程 - 如何使用 Table,实际上大部分部分都是关于(或包括一些关于)的,DbUtils 的快捷方式必须返回正确的数据类型
-
是的,我读过,我尝试过,但我还在学习java,很难理解。
-
short_cut 一个 DbUtils 必须返回一个布尔值
-
default renderer/editor 应该可以工作。如果没有,请编辑您的问题以包含一个complete example,以显示您的方法。
-
mKorbel,我不明白什么是short_cut :)trashgod,所以,可以说,我现在想用表格中的这些数据添加一个带有复选框的列,然后我将尝试检查是否选中了某个复选框,以调用 SQL 查询以在数据库中更新。
标签: java swing checkbox jtable