我有一个带有多个子组件级别的JPanel,还有一个JScrollPane。我在一些子组件上放置了一个焦点监听器来为这些组件添加一些行为,但是我还希望在获得焦点时将该组件滚动到JPanel的视口中。
我的问题是,有没有人有这样做的通用功能,类似于浏览器DOM功能“scrollIntoView”?我已经尝试过对JComponent.scrollRectToVisible的各种输入进行混淆,但我想我还没有想出这个神奇的词。
提前致谢。
答案 0 :(得分:4)
显而易见的是调用scrollRectToVisible
on是JScrollPane,它将编译正常,但不会做你想要的。您必须在滚动窗格的视口中包含的对象上调用scrollRectToVisible
。代码应该看起来像:
java.awt.Component focusedComponent = evt.getComponent();
panel.scrollRectToVisible(focusedComponent.getBounds(null));
repaint();