有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

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