有 Java 编程相关的问题?

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

java将JPanel的宽度绑定到JScrollPane的宽度以防止自动调整大小

我有这样的代码:

JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(panel);
scrollPane.setHorizontalScrollBarPolicy(
           JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

当面板中的组件变得太宽时,会出现scrollPane中的水平滚动条,用户必须向左或向右滚动。问题是,面板中的组件实际上是可调整大小的,但因为它是一个JScrollPane,所以它最大化了

问题:有没有办法将面板的width属性绑定到scrollPane的width属性?这样面板内的组件就不会超过面板的宽度

下面显示了它的外观:

Panel width exceeding jscrollpane

水平滚动条策略设置为“从不”时,滚动条将消失,但面板宽度保持不变,但现在面板的一部分不再可见


共 (1) 个答案

  1. # 1 楼答案

    您可以使用setHorizontalScrollBarPolicysetVerticalScrollBarPolicy方法或从构造函数JScrollPane(Component, int, int)更改滚动条策略

    引用the Oracle documentation,政策如下:

    • 垂直滚动条(根据需要)
    • 水平滚动条
    • 垂直滚动条总是
    • 水平滚动条总是
    • 垂直滚动条
    • 水平滚动条