1

当用户将光标移到边框的边缘时JScrollPane,我可以将光标变成两个指向彼此相反方向的小箭头,从而用户可以缩小或扩大整个JScrollPane?

JScrollPane scrollPane = new JScrollPane(buddyList,
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);

layoutConstraints.gridx = 0;  layoutConstraints.gridy = 0;
layoutConstraints.gridwidth = 3;  layoutConstraints.gridheight = 8;
layoutConstraints.fill = GridBagConstraints.BOTH;
layoutConstraints.insets = new Insets(10, 6, 10, 36);
layoutConstraints.anchor = GridBagConstraints.NORTHWEST;
layoutConstraints.weightx = 0.8;  layoutConstraints.weighty = 1.0;
layout.setConstraints(scrollPane, layoutConstraints);
add(scrollPane);//Adds the Scrollpane straight to the panel The class extends JPanel
4

1 回答 1

0

你看错地方了。如果您想允许调整滚动窗格的大小,则滚动窗格是错误的对象。父容器(或其布局管理器)负责从组件(这里恰好是滚动窗格)中分配或占用空间并将其分配给其他子容器。最简单的方法是将滚动窗格放入拆分窗格中。您可以将拆分窗格放入具有不同方向的另一个拆分窗格中,以允许在两个方向上调整大小,但是这也会调整滚动窗格的直接邻居(内部拆分窗格的另一个子项)的大小。由于所有这些布局形成了一种网格,因此没有解决方案。

请注意,使用您当前在父容器中使用的 GridBagLayout 很难实现这样的调整大小支持。即使您实现了这个棘手的技巧,GridBagLayout 也将始终调整整个行或列的大小。因此,您将遇到与嵌套拆分窗格相同的问题,甚至更糟。

于 2013-09-04T12:33:30.633 回答