Swing JScrollPane填充一个维度并滚动另一个维度

时间:2017-07-11 20:53:07

标签: java swing user-interface jscrollpane

我有一个相对较大的文字,由一个JLabel代表。该文本已添加到JPanel组件GridBagLayout

我希望文本填充x轴上面板内的所有可用空间,并仅在y轴上提供滚动。此外,在缩放面板时,滚动和文本对齐应相应更改。

因此,请考虑以下代码示例:

JPanel panel = new JPanel(new GridBagLayout());
JLabel desc = new JLabel("largelarge text");
JScrollPane scrollPane = new JScrollPane(desc, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
panel.add(scrollPane, gbc constraints here);

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

  

我希望文本填充x轴上面板内的所有可用空间,并仅在y轴上滚动

您需要创建自定义面板并实施Scrollable界面。

您将实现getScrollableTracksViewportWidth()方法返回“true”,getScrollableTracksViewportHeight()方法返回“false”。您还需要实现接口的其他方法以提供合理的值。

或者,您可以使用Scrollable Panel实现具有默认行为的所有Scrollable接口方法,并提供允许您更改行为的方法。