gpt4 book ai didi

java - 使 JList 滚动到其元素的末尾

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:40 24 4
gpt4 key购买 nike

我正在使用以下代码滚动到 JList 的末尾。当我在包含 JList 的窗口上设置 Visible 以及向 JList 添加项目时,我会使用它。

int lastIndex = getMyList().getModel().getSize() - 1;

if (lastIndex >= 0) {
getMyList().ensureIndexIsVisible(lastIndex);
}

问题在于,在第一次调用 setVisible 时,JList 无缘无故向上滚动了几个项目。如果我随后调用 setVisible(false),然后调用 setVisible(true),JList 将像预期的那样滚动到底部。我注意到的一件事是,当我打开一个窗口时,它的某些组件似乎在几分之一秒内重新排列。所以我猜问题可能在于此。

因此,当我打开这些窗口之一时,我按下了“打印屏幕”,您可以看到,当窗口最初打开时,它底部的组件甚至都不可见(表情符号和按钮)。这是窗口“完全打开”时的样子,以及完全打开前几分之一秒的样子。

窗口打开后的样子(您可以看到滚动条不在底部) enter image description here

在调用 setVisible() 后打开窗口截图时窗口的外观 enter image description here

所以有人知道为什么布局会随着窗口打开而改变,以及如何让我的 JList 在它第一次打开时滚动到底部?

最佳答案

尝试在 SwingUtilities.invokeLater() 中封装 ensureIndexIsVisible() 调用

关于java - 使 JList 滚动到其元素的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9883637/

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