我的应用程序中有一个jtable,它从mysql数据库中获取记录并按排序顺序显示它们。到目前为止,我一直在使用一个单独的jtextarea和一个jcombobox来允许用户编辑表,比如因此,每当有人单击表中的一行时,jcombobox前面的jlabel就会自动更新下面记录的id。问题是,我如何允许用户简单地双击并编辑单元格中的值,这些值将自动触发sql update查询并更新数据库中的值。我只想在某些列上允许这样做,而不是在每一列上。如果您能给出一个代码示例,我们将不胜感激。
a8jjtwal1#
我如何允许用户简单地双击并编辑单元格中的值,这些值将自动触发sql update查询并更新数据库中的值。你可以使用 TableModelListener 收到变更通知 TableModel .我只想在某些列上允许这样做,而不是在每一列上。行/列位于 TableModelEvent 所以在调用sql更新之前检查更改的列。这样做的一个潜在问题是,即使数据没有更改,也会生成tablemodelevent。也就是说,如果您将单元格置于编辑模式,例如,在不更改数据的情况下切换到下一个单元格,则仍将生成事件。为了解决这个问题,您可能需要考虑使用表单元格侦听器。使用此类时,仅当数据实际发生更改时才会生成事件。
TableModelListener
TableModel
TableModelEvent
1条答案
按热度按时间a8jjtwal1#
我如何允许用户简单地双击并编辑单元格中的值,这些值将自动触发sql update查询并更新数据库中的值。
你可以使用
TableModelListener
收到变更通知TableModel
.我只想在某些列上允许这样做,而不是在每一列上。
行/列位于
TableModelEvent
所以在调用sql更新之前检查更改的列。这样做的一个潜在问题是,即使数据没有更改,也会生成tablemodelevent。也就是说,如果您将单元格置于编辑模式,例如,在不更改数据的情况下切换到下一个单元格,则仍将生成事件。
为了解决这个问题,您可能需要考虑使用表单元格侦听器。使用此类时,仅当数据实际发生更改时才会生成事件。