【发布时间】:2023-03-30 00:57:02
【问题描述】:
SELECT false as "Select" from Table_Name
在 derby 中运行的 SQL 我得到了这个输出:
在 MYSQL 中运行的 SQL 我得到了这个输出:
我想使用 ResultSet 创建一个带有复选框列的 JTable。
当我使用derby时它是可行的,我的JTable有一个带有复选框的列。
但是当我使用 MYSQL 时,我的 JTable 有一个 0 列。
问题出现在 Which MySQL data type to use for storing boolean values
所以现在我在想:
- 我是否可以配置 MYSQL,直到它可以像 derby 一样返回复选框?
- MYSQL 中是否有可以返回布尔数据类型 true/false 的函数?不是其他数据类型。
- 是否可以更改 ResultSet 以获取复选框?
我的最终目标是创建一个 JTable,其中复选框列作为第一列,并填充来自数据库的数据 SELECT。每个人都想要简单的方法。
目前我正在使用这种方法Using Rob Camick's ListTableModel, but JTable doesnt show up
//ListTableModel model = ListTableModel.createModelFromResultSet(rs);
model = ListTableModel.createModelFromResultSet(rs);
【问题讨论】:
-
JTable,默认根据列值的类类型选择合适的单元格渲染器。例如,使用DefaultTableModel将导致它直接使用列class类型 (value.getClass()),这可能不会返回Boolean。一种解决方案是直接设置列渲染器,但您需要能够为列值返回true/false值才能使其工作。