gpt4 book ai didi

java - 如何使 JScrollPane 与嵌套的 JPanel 一起正常工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:30 24 4
gpt4 key购买 nike

我正在使用 NetBeans 在 Java 中构建一个 Swing 应用程序,但我遇到了布局问题。我的主框架包含一个 JScrollPane,其中包含一个名为 contentPanelJPanel,后者又包含一个名为 JPanel列表面板。程序启动时 listPanel 是空的,但是当用户与程序交互时,会向其中添加数量不可预测的较小的 JPanel。我使用 NetBeans GUI-builder 将 listPanel 的顶部边缘对齐到 contentPanel 的顶部,底部边缘也是如此。

我遇到的问题是,当更多组件添加到 listPanel 时,垂直滚动条不会出现在我的滚动 Pane 中。我的滚动 Pane 的 verticalScrollBarPolicy 设置为 AS_NEEDED,其 viewportView 设置为 contentPanel。我认为我需要做的是在将更多项目添加到 listPanel 时使 contentPanel 增长。

最佳答案

The problem I have is that when more components are added to listPanel the vertical scrollbar doesen't appear on my scrollpane.

当添加到滚动 Pane 的组件的首选大小大于滚动 Pane 的大小时,将出现滚动条。当您动态添加组件时,您需要告诉滚动 Pane 某些内容已更改。所以你的基本代码应该是:

panel.add( subPanel );
panel.revalidate();

或者,因为您要将面板添加到子面板,您可能需要重新验证滚动 Pane (我不记得了):

panel.add( subPanel );
scrollPane.revalidate();

关键是 revalidate(),它告诉布局管理器重新计算其大小。

关于java - 如何使 JScrollPane 与嵌套的 JPanel 一起正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5193162/

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