Java Swing:使用 JList 和 JScrollPane 自动滚动

发布于 2024-09-08 12:10:21 字数 207 浏览 5 评论 0原文

我遇到这个问题:

我有一个 JList(在 JScrollPane 内),其中包含大约 1000 个元素,并且该 JList 的尺寸显然不允许显示所有数据。现在,我在 JScrollPane 中有这个 JList,并且当我说 JList.setSelectedIndex() 时,JScrollPane 会自动滚动到 JList 上的索引上,并显示该元素。

先感谢您!

I'm having this problem:

I have a JList (within a JScrollPane) with say about 1000 elements, and the dimensions of this JList obviously doesn't allow to show all the data. Now, I have this JList within a JScrollPane and I need that when I say JList.setSelectedIndex(), the JScrollPane automatically scrolls into, and show that element on that index on the JList.

Thank you in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那片花海 2024-09-15 12:10:22

我相信您正在寻找以下方法:

public void EnsureIndexIsVisible(int index)

在封闭视口内滚动列表以使指定的单元格完全可见。这将使用指定单元格的边界调用scrollRectToVisible。要使此方法起作用,JList 必须位于 JViewport 内。
如果给定索引超出列表的单元格范围,则此方法不会产生任何结果。

I believe you are looking for the following method:

public void ensureIndexIsVisible(int index)

Scrolls the list within an enclosing viewport to make the specified cell completely visible. This calls scrollRectToVisible with the bounds of the specified cell. For this method to work, the JList must be within a JViewport.
If the given index is outside the list's range of cells, this method results in nothing.

九歌凝 2024-09-15 12:10:22

我还没有对此进行测试,但您应该能够使用

myScrollPane.getViewport().scrollRectToVisible(Rectangle r)

其中 r 是包含感兴趣信息的 JList 总(虚拟)区域的区域。您可以根据 JList 的项目高度和行号计算所需的垂直偏移。


编辑:语法的答案更容易实现。

I haven't tested this, but you should be able to use

myScrollPane.getViewport().scrollRectToVisible(Rectangle r)

where r is an area of your JList's total (virtual) area that contains the information of interest. You can calculate the required vertical offset from the JList's item height and the row number.


EDIT: Syntax's answer is even easier to implement.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文