0

我正在尝试将 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 上的其他垂直滚动条选项

我不知道我还能尝试什么。有人有什么建议吗?

4

1 回答 1

1

我永远找不到这个特定设置的确切答案。我的猜测是 JGoodies 可以很好地处理嵌套布局。

我最终通过对整个位置滚动窗格仅使用一个面板来“修复”此问题。这使得布局有点复杂:现在多个单元格必须跨越列,我必须手动调整列偏移量。但最终它起作用了

于 2013-07-18T13:57:40.847 回答