gpt4 book ai didi

Java Swing - JScrollPane 使视口(viewport)宽度适合 JScrollPane 宽度

转载 作者:行者123 更新时间:2023-12-05 04:08:36 26 4
gpt4 key购买 nike

我一直在尝试缩小 JScrollPane 的内容宽度,例如。我已将 Horizo​​ntalScrollBarPolicy 设置为 NEVER,但这最终导致没有 ScrollBar 出现并且内容不再显示。

enter image description here

我希望它看起来像这样:

enter image description here

这是我的 MCVE:

final JPanel panel = new JPanel( new MigLayout( new LC().flowX().gridGapX( "20" ).fill() ) );

panel.add( new JXTitledSeparator( "Test" ), new CC().growX().spanX().wrap() );
panel.add( new JLabel( "Shrink me please!" ), new CC().minWidth( "1" ) );
panel.add( new JLabel( "Never shall anyone ever be able to shrink me." ), new CC().growX() );

final JScrollPane scrollPane = new JScrollPane( panel );
scrollPane.setHorizontalScrollBarPolicy( ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER );

final JFrame frame = new JFrame( "Test" );
frame.getContentPane().add( scrollPane );
frame.setVisible( true );
frame.pack();

遗憾的是,我不知道该怎么做,JScrollPaneJViewport 没有提供任何可能有用的方法,JScrollPane< 也没有 本身 afaik。

此外,我已经尝试使用 BoxLayoutFlowLayout 而不是 MigLayout 来实现相同的目的,以验证 MigLayout 不是问题的原因。

最佳答案

您需要在面板上实现Scrollable 接口(interface)。

您可能希望实现 getScrollableTracksViewportWidth() 方法以返回 true

这将强制面板的宽度与视口(viewport)的宽度匹配。然后面板上的每个组件将根据布局管理器的规则调整大小。

如果您不想自己实现Scrollable 接口(interface),那么您可以使用Scrollable Panel。它提供了允许您控制可滚动属性的方法。

关于Java Swing - JScrollPane 使视口(viewport)宽度适合 JScrollPane 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com