java允许用户调整JScrollPane的大小
当用户将光标移动到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
# 1 楼答案
你看错地方了。如果要允许调整滚动窗格的大小,滚动窗格是错误的对象。父容器(或其布局管理器)负责从组件(此处恰好是滚动窗格)中提供或获取空间,并将其分发给其他子容器。最简单的方法是将滚动窗格放入拆分窗格中。您可以将拆分窗格放入另一个具有不同方向的拆分窗格中,以允许在两个方向上调整大小,但是这也会调整滚动窗格的直接相邻窗格(内部拆分窗格的另一个子窗格)的大小。所有这些布局形成一种网格,没有解决方案
请注意,对于父容器中当前使用的GridBagLayout,很难实现这样的调整大小支持。即使您实现了这个棘手的技巧,GridBagLayout也将始终调整整行或整列的大小。因此,您将遇到与嵌套拆分窗格相同的问题,甚至更糟