我试图将一个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);
我尝试过的事情
我不知道还能尝试什么。有人有什么建议吗?
答案 0 :(得分:1)
我永远无法找到这个特定设置的确切答案。我的猜测是JGoodies很好地处理了嵌套布局。
我最后通过在整个位置滚动窗格中只使用一个面板来“修复”这个问题。这使得布局有点复杂:现在多个单元必须跨越列,我不得不手动调整列偏移。但最终它起作用