gpt4 book ai didi

java - 当形状位于 JPanel 外部时自动滚动

转载 作者:行者123 更新时间:2023-11-30 05:05:32 24 4
gpt4 key购买 nike

我有一个 JPanel,可以在其中绘制形状。该面板被添加到scrollPane 中。但当形状不在场景中时,滚动不起作用。有没有一种简单的方法可以自动滚动,或者我必须以编程方式进行。

谢谢

最佳答案

我假设您使用 JPanel 作为自定义绘图的 Canvas (即您没有向其中添加任何 JComponent)。如果是这种情况,JScrollPane 无法知道 JPanel 有多大,并且只会调整其大小以精确填充scrollPane 的视口(viewport)(这意味着您永远不会真正获得滚动条)。

要解决此问题,您应该覆盖 JPanel 上的 getPreferredSize。

@Override     
public Dimension getPreferredSize() {
int height = calculateHeight();
int width = calculateWidth();
return new Dimension(width, height);
}

编辑:

此外,由于您正在进行自定义绘制,因此请确保每当您要绘制的形状发生变化时都调用重新验证。这告诉 swing 它需要重新考虑 JPanel 的布局/大小。

关于java - 当形状位于 JPanel 外部时自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5221821/

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