gpt4 book ai didi

java - Swing JTable : Event when row is visible, 或滚动到底部时?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:53:53 24 4
gpt4 key购买 nike

我正在寻找一种方法,以便在 JTable 滚动到特定行变得可见时得到通知,或者当表格底部滚动到 View 中时无法看到。理想情况下,这应该在没有轮询的情况下完成,而是通过一些事件触发来完成。有什么想法吗?

最佳答案

ChangeListener 添加到滚动 Pane 的视口(viewport)。

    viewport = scrollpane.getViewport();
viewport.addChangeListener(this);

然后这会检查可见行(也可以很容易地扩展到列)

public void stateChanged(ChangeEvent e)
{
Rectangle viewRect = viewport.getViewRect();
int first = table.rowAtPoint(new Point(0, viewRect.y));
if (first == -1)
{
return; // Table is empty
}
int last = table.rowAtPoint(new Point(0, viewRect.y + viewRect.height - 1));
if (last == -1)
{
last = tableModel.getRowCount() - 1; // Handle empty space below last row
}

for (int i = first; i <= last; i++)
{
int row = sorter.convertRowIndexToModel(i); // or: row = i
//... Do stuff with each visible row
}

if (last == tableModel.getRowCount() - 1) {} //... Last row is visible
}

如果您的表格不可排序,请忽略排序器

关于java - Swing JTable : Event when row is visible, 或滚动到底部时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8195959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com