java - 将行保持在同一位置的 View 中

标签 java swing jtable jscrollpane viewport

我有一个表格,我可以在其中向表格中显示的数据添加一些过滤器,我希望能够将特定行保留在屏幕上的同一位置,为了选择行,我选择了顶行因为它是我知道的唯一行,如果有任何数据(可能是唯一的行),当过滤器更改时,我需要滚动到该行(或其附近的行),我可以找到我的项目的行号更改我想去的数据后想去。

目前我正在使用 jTable.scrollRectToVisible(new Rectangle(jTable.getCellRect(rowId, 0, true))); 但这只是确保它在 View 中。由于在大多数情况下,数据的更改使我的 View 转到顶部,因此它会将行滚动到 View 的底部。 如何最好地将行移至 View 顶部?如果该行位于数据的末尾,它应该滚动到底部,而不是强制滚动框中的空白以使其到达顶部。

最佳答案

scrollPane.getViewport().setViewPosition(Point);

Point 是从 getCellRect(...) 方法返回的 x/y 位置。

关于java - 将行保持在同一位置的 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969561/

相关文章:

java - 如何在 JSF 中用空白图像替换损坏的图像?

java - JFileChooser .txt 扩展名

java - 您能否找到谁从 AWTEvent 对象对 EDT 进行了调用?

java - JTable AbstractTableModel 未触发动态数据列表

java - Eclipse插件开发: Is plugin update or uninstall/install really clean?

java - Apache DBUtils - 存储过程

java - 通过鼠标点击随机改变矩形的颜色

java - 使光标在 JTable 内的 JTextField 中可见,无需左键单击

java - 如何在 Windows LookAndFeel 中更改 JTableHeader 的主色?

java - 升级没有 .proto 的 protobuf jar 的命名空间