我已经扩展了 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/