【发布时间】:2018-08-30 17:24:38
【问题描述】:
我目前正在尝试使用 Swift 中的 GridBagLayout 构建 GUI。
在尝试为我正在处理的项目制作 GUI 时遇到了问题:
在创建事物列表时,面板超出了我的屏幕高度,因此我将框架的首选大小设置为 900 像素。
但是,列表的高度超过了 900 像素。所以我尝试将 JScrollPane 添加到包含列表的面板中。就是没有。
我的 Frame 架构是这样的: 框架 f -> JTabbedPane Wrapper -> JPanel p
我将 ScrollPane 应用到这些对象中的任何一个,都没有工作。有什么建议吗?
【问题讨论】:
-
“所以我尝试将 JScrollPane 添加到包含列表的面板中。” - 您必须将面板设置为
JScrollPane的内容,而不是添加它面板内部。其中一种方法是直接在构造函数中:new JScrollPane(panel);。如果我理解错了并且这不是问题,请提供minimal reproducible example。 -
您应该使用可以计算所需面板宽度的适当layout manager,或者您应该为面板设置首选尺寸。类似
panel.setPreferredSize(new Dimension(800, 2000)); -
@lukas-rotter,将面板添加到 ScrollPane 正是我所做的。新的 JScrollPane(包装器);或新的 JScrollPane(f);
标签: java swing scrollbar gridbaglayout