- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
什么时候应该创建自己的 TableModelListeners 和 DataModelEvents?
我知道 DefaultTableModel
、AbstractTableModel
和 TableModel
的区别和用途。
我在许多在线 Java 示例中看到,在创建扩展 DefaultTableModel 和 AbstractTableModel 类的类(自定义模型)时显式创建了 TableModelListeners 和 DataModelEvents。
这是我的理解:
如果我要扩展 DefaultTableModel
,那么这个模型已经知道如何创建 DataModelEvents 和 TableModelListeners(这样我就不必添加它们)监听/观察这些事件,并且知道通知 TableModelListeners。
如果我要扩展一个 AbstractTableModel,那么这个模型已经知道如何创建 DataModelEvents 和 TableModelListeners(这样我就不必添加它们)监听/观察这些事件。但我必须显式调用 firetablechanged() 或类似方法来通知 TableModelListeners 事件。
如果我正在实现一个 TableModel,那么这个模型已经知道如何创建 DataModelEvents,但是没有有任何 TableModelListeners(所以我必须添加它们)监听/观察这些事件。而且我还必须显式调用 firetablechanged() 或类似方法来通知 TableModelListeners 事件。
最佳答案
我在 DefaultTableModel
上遵从@mKorbel,它非常适合可以依赖其直接修改器的情况。它受到 Vector
内部使用的限制,Vector
是一个受支持但已过时的 Collection
,它承载(可能)不必要的同步开销。
AbstractTableModel
提供更多 flexibility将应用程序的数据模型暴露给 JTable
View 。它应该在 DefaultTableModel
不适合的情况下使用。
针对您的问题,JTable
实现了 TableModelListener
,它会监听自己的 TableModel
。任意数量的其他 View 也可以收听相同的模型; DisplayPanel
是一个监听名为 CheckModel
的 AbstractTableModel
的示例。如果您的 TableModel
包含您的 View 更新自身所需的数据,则它应该触发一个合适的 TableModelEvent
。如果没有,您可以使用 JTable
使用的相同 EventListenerList
机制定义您自己的事件 types,描述 here ,并提到 here .
关于Java - TableModelListeners 和 DataModelEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285944/
我有一个使用jTable(使用netbeans)的数据库应用程序,我已经向jTable添加了一个表模型监听器,因此当我编辑jTable时,它也会编辑数据库(MySQL)。然而,当用户单击 jTable
第一次在这里发帖,如有错误请见谅 我正在处理一个 JTable,其中的列数据必须验证一些参数,例如: 第 3 列值 > 30 第 4 列值 > 10 第 5 列值 > 4 前 2 列也是“自动”填充的
我正在使用java swing开发一个应用程序,其中有一个jTable,我从数据库导入数据。我想直接从jTable更新我的数据库。因此,根据我找到的代码(抱歉我不记得链接),我设法使用TableMod
我在运行时在表模型中实现了“addTableModelListener”,但我想再创建一个控件来删除它。我在Google上搜索过,但没有找到任何合适的逻辑来实现删除表模型监听器。 请帮助我实现 rem
我有一个 Jtable,TableModelListener 正在监听 实现者 private void anadeListenerAlModelo() { tabla.getModel().
什么时候应该创建自己的 TableModelListeners 和 DataModelEvents? 我知道 DefaultTableModel、AbstractTableModel 和 TableM
我正在创建一个 UI 类,所有内容都将在其中运行(另一个类将作为运行器)。在这个类中,我有一个表,该表应该在更改时创建 TableModeEvents,但它似乎没有这样做。 每当我对表格进行任何操作时
我在将 TableModelListener 添加到 AbstractTableModel 时遇到了问题。程序停止工作,JFrame 不响应任何按钮单击,甚至关闭 JFrame。 我想要的是当 myT
这是我第一次使用 JTable。我通过 DAO 模式从数据库中提取数据,将其保存在一个集合中,读取该集合并用它填充我的 JTable。但是,我也在使用 MVC 模式,并且不知道如何正确更新我的 Vie
我对 Java 很陌生,我一直在使用 jTable 开发 GUI。我有一个 jTable,我想从中跟踪更改,因此我动态地向其 TableModel 添加了一个 TableModelListener。但
我不确定为什么这是递归的。 jTable1.getModel().addTableModelListener(new TableModelListener() { public void table
我目前正在使用两个 JTable。他们每个人都有自己的自定义 TableModel。 在第一个 JTable 中,我有可以选择的项目(复选框)。第二个开始是空的。当我检查第一个表中的一行时,该行的 b
我创建了一个TableModelListener来监听特定的列。具体来说,列2,3,4,5。这样,当 2-5 中的任何列有值或 not null 时,它会将值存储添加到 BigDecimal 值中以获
我想使用 TableModelListener 将第二列设置为 JComboBox 编辑器。还想根据第一列中选定的组合框更改第二列中组合框的模型。在这里,我实现了一个监听第一列的监听器。 priv
我有一个简单的程序,可以使用 JTable 显示数据库的表。我有一个组合框,列出所有可用的表,还有一个 actionListener,每次更改时将模型设置为表。这按预期工作。我遇到的问题是,当选择一个
TableModelListener(第 87 行/HERE-1)是否会干扰我的 JTable 的 addRow 方法(第 139 行,HERE-2)?如果是这样我该如何解决? 此代码可以编译,但当我
我的 JTable 有一个列,其中包含用于维护状态的 JCheckBox。当我不实现 TableModelListener 并运行程序时,数据将显示在 JTable 中。但是当我运行实现了 Table
我是一名优秀的程序员,十分优秀!