[英]Updating JTable Data — using a AbstractTableModel
我一直在广泛阅读论坛,并尝试了许多方法来解决此问题。
问题:我制作了一个自定义的AbstractTableModel
以便可以控制数据的显示方式。 它只是存储在String[][]
。 它使用JDBC
连接到DB,以填充初始数据。 因此,当我的用户(通过Swing
GUI)搜索某物时,我在后台简单地构造了一个查询来查询数据库,并返回ResultSet
。 现在,我想在JTable
上显示此新数据。
研究:我读了很多有关侦听器和触发更新的内容。 但是我已经阅读并重读了它们,但仍然没有完全理解它们。 当我为JTable
设置新模型时,我实际上是想保留我创建的自定义AbstractTableModel
并只是更新数据,这是否可能(也许可以使用AbstractTableModel
类中的公共方法创建)?
附加问题:我是否应该使用侦听器来实现此功能? 我是否需要添加侦听器或观察者?
谢谢,我真的很感激! 丰富
研究:我读了很多有关侦听器和触发更新的内容。 但是我已经阅读并重读了它们,但仍然没有完全理解它们。 当我为JTable设置新模型时,我实际上是想保留我创建的自定义AbstractTableModel并只是更新数据,这是否可能(也许可以使用AbstractTableModel类中的公共方法创建)?
是的,有可能。 基本上,您需要...
附加问题:我是否应该使用侦听器来实现此功能? 我是否需要添加侦听器或观察者?
没有上下文很难说。 我会说,通常不会。 在您的情况下,创建SwingWorker
,执行数据库查询并填充新的表模型并从doInBackground
方法返回它,或者使用publish
/ process
方法更新现有模型可能更简单。
....所以我可以控制数据的显示方式
模型用于存储数据。 视图(JTable)显示数据。
它只是存储在String [] []中。
无需创建自定义TableModel。 只需使用DefaultTableModel。
我实际上想保留我的自定义AbstractTableModel
使用DefaultTableModel的setDataVector()
方法
请参阅“ Get the Code
部分中Get the Code
来自数据库的表示例 Get the Code
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.