滚动 JScrollPane 时出现问题 - 线程
情况是这样的:
点击菜单项时,一些组件被添加到 JScrollPane 中,调整组件的大小,然后调用 JScrollPane 的 setVisible 方法。组件大小的调整超出了我的控制范围。 (TextAreas 根据其内容调整大小。插入符更新被禁用。)
我想将 JScrollPane
滚动到底部。使用 invokeLater
和通过使用 getMaximumValue
方法向下滚动列表的 Runnable
在这种情况下似乎不起作用(而通常对于其他程序的一部分)。
有没有办法让 Runnable 线程在确保与上述操作相关的所有事情都完成后得到通知?
提前致谢。
The situation is like this:
Upon clicking on a menu item, some components are added to a JScrollPane
, the components are resized, then setVisible method of JScrollPane
is called. Resizing of components are out of my control. (TextAreas getting resized according to their contents. Caret updates are disabled.)
I want to scroll the JScrollPane
to the bottom. Using invokeLater
and a Runnable
that scrolls the list down by using getMaximumValue
method does not seem to work in this case (while it normally does for other parts of the program).
Is there a way to make the Runnable
thread get notified after making sure that everything related to the operations above are done?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么要使用另一个
线程
来做到这一点?您可以使用That 或类似的东西来满足您的需要吗?
Why are you doing that with another
Thread
? Could you instead useThat, or something similar should do what you need.
您可以尝试创建新线程并在该线程上调用虚拟 invokeAndWait 。之后,所有待处理的事件都应该完成,并且您的滚动代码应该可以工作。
You colud try to create new thread and call dummy invokeAndWait on that thread. After that, all pending events should be finished and your scroll code should work.