java - 扩展 AbstractTableModel 时使单元格在 JTable 中可见

标签 java user-interface swing jtable abstracttablemodel

我已经扩展了 AbstractTableModel 以满足我的要求。现在这个表可以通过我的 GUI 的其他方法来更改。我希望表格滚动到当前编辑的单元格进入 View 。为此,我想我必须首先获取当前 JComponent 的 JViewport,但我没有看到可以实现此目的的方法?我该如何实现这一目标?

当我使用默认的 JTable 时我已经这样做了,但是当我们扩展 AbstractTableModel 时我该怎么做呢?

最佳答案

模型旨在存储数据并在数据更改时通知 View 。它通过触发事件来通知 View 数据的变化。监听这些事件是 View 的责任。因此,模型永远不会直接知道正在更新哪个 View 。这种类型的功能不应成为模型的一部分。

一种方法可能是使用 TableModelListener。您可以使用表作为参数创建一个 TableModelListner。然后,当数据发生更改时,监听器将收到通知。然后,您可以在表格上调用 table.scrollRectToVisible(...) 。但是,使用这种方法,您无法区分直接通过 TableModel 应用的编辑和通过 JTable 本身完成的更新。

关于java - 扩展 AbstractTableModel 时使单元格在 JTable 中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548662/

相关文章:

Java 8 HttpClient 4.5 HttpGet 和 HttpPost 位于一个函数中

java - 删除不同类名中存在的属性

c - 使用 GTK+ 的 C 语言 GUI,第一步

user-interface - Powershell 脚本上的 GUI 叠加

Java Swing GUI 在鼠标悬停时改变颜色

java - 制作 JFrame 时抛出 LWJGL java.awt.HeadlessException

java - 为什么这个在java中反转LinkedList的算法不适合θ(N)?

netbeans - 更改 NetBeans 中可见选项卡的行数

Java - 在全屏模式下添加图像(用 java 示例开发游戏 - 书籍)

java - 图像未加载到 JPanel 中