gpt4 book ai didi

java - jPanel 调整大小后 jScrollPane 滚动消失

转载 作者:行者123 更新时间:2023-12-01 13:10:36 27 4
gpt4 key购买 nike

我目前正在使用 NetbeansIDE 7.4 编写 Java GUI 应用程序,但遇到了以下问题:

我有一个 jPannel 包含在初始尺寸为 300,160 的 jScrollPane 中每次我在运行时单击 jButton 时,我都会调整 jPannel 的大小,如下所示:

jPanel3.setPreferredSize(new Dimension(300, (count + 3) * 30));
jPanel3.repaint();

如果计数变量大于 3,则每次调整 jPannel 大小时,垂直滚动条都会适应 jPannel。

但是如果 count 小于 3,垂直滚动条就会消失,当我再次调整 jPannel 的大小时(假设 count = 10),滚动条不再显示。

这正常吗?我该如何修复它?

最佳答案

Is this normal? How can i fix it?

不知道这是否正常,但这不是调整面板大小的正确方法。 Swing 组件负责确定其大小,而不是您的应用程序代码。当您想要更改组件的属性时,可以通过创建 setter 方法来完成此操作。

如果您想动态更改面板的大小,那么您应该重写自定义面板的 getPreferredSize() 方法。像这样的东西:

@Override
public Dimentsion getPreferredSize()
{
return new Dimension( new Dimension(300, (getCount() + 3) * 30) );
}

然后在您的类中,您应该为您的计数创建一个 setter(和 getter)方法:

public void setCount(int count)
{
this.count = count;
revalidate()
repaint();
}

现在,重新验证将导致重新计算首选尺寸,然后滚动 Pane 将使用新的首选尺寸。

关于java - jPanel 调整大小后 jScrollPane 滚动消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22898808/

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