我正在尝试将 JGoodies 面板放入只有垂直滚动条的 JScrollPane 中;任何大于当前 JScrollPane 宽度的元素都应该被截断。但是我想不出一种方法来完成这项工作
我想要的效果示例
我不想发生的事
我当前的代码本质上是:
FormLayout locationsLayout = new FormLayout("15dlu, pref, 5dlu, pref, 5dlu, pref:grow", "");
locationsBuilder = new DefaultFormBuilder(locationsLayout)
.background(Color.WHITE)
.lineGapSize(Sizes.ZERO);
locationsPane = new JScrollPane(locationsBuilder.getPanel());
locationsPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
locationsPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//...Sometime later, the user adds a folder...
FormLayout headerLayout = new FormLayout("pref, pref", "pref");
DefaultFormBuilder headerBuilder = new DefaultFormBuilder(headerLayout)
.background(Color.WHITE)
.lineGapSize(Sizes.ZERO);
headerBuilder.add(curContainer.getGuiHeader(), CC.xy(1, 1));
headerBuilder.add(curContainer.getGuiTablePrefix(), CC.xy(2, 1));
locationsBuilder.leadingColumnOffset(0);
locationsBuilder.append(headerBuilder.getPanel(), 6);
我尝试过的事情
- min、pref、grow、fill 等的各种排列。没有什么能改变这种行为
- 将实现 Scrollable 的自定义 JPanel 传递给 locationsBuilder DefaultFormBuilder 构造函数,如此处、此处或此处所述
- 尝试 JScrollPane 上的其他垂直滚动条选项
我不知道我还能尝试什么。有人有什么建议吗?