我有一个JPanel
(A)与BoxLayout
,并且它嵌入了另一个JPanel
(B)JScrollPane
。
我想在将新组件添加到A时将滚动位置设置在底部。
我尝试下面的代码,但它阻止使用向上滚动来查看所有A上下文:(滚动固定在底部!)
scroll.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
e.getAdjustable().setValue(e.getAdjustable().getMaximum());
}
});
有人有另一种解决方案吗?
答案 0 :(得分:1)
您可以在添加新组件后调用此方法:
JScrollBar sb = scroll.getVerticalScrollBar();
sb.setValue( sb.getMaximum() );//not sb.getMaximumValue()
修改强>
您可以使用此代替上层代码。
panel.revalidate();
int height = (int)panel.getPreferredSize().getHeight();
Rectangle rect = new Rectangle(0,height,10,10);
panel.scrollRectToVisible(rect);