作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试缩小 JScrollPane
的内容宽度,例如。我已将 HorizontalScrollBarPolicy
设置为 NEVER
,但这最终导致没有 ScrollBar 出现并且内容不再显示。
我希望它看起来像这样:
这是我的 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();
遗憾的是,我不知道该怎么做,JScrollPane
的JViewport
没有提供任何可能有用的方法,JScrollPane< 也没有
本身 afaik。
此外,我已经尝试使用 BoxLayout
和 FlowLayout
而不是 MigLayout
来实现相同的目的,以验证 MigLayout
不是问题的原因。
最佳答案
您需要在面板上实现Scrollable
接口(interface)。
您可能希望实现 getScrollableTracksViewportWidth()
方法以返回 true
。
这将强制面板的宽度与视口(viewport)的宽度匹配。然后面板上的每个组件将根据布局管理器的规则调整大小。
如果您不想自己实现Scrollable
接口(interface),那么您可以使用Scrollable Panel。它提供了允许您控制可滚动属性的方法。
关于Java Swing - JScrollPane 使视口(viewport)宽度适合 JScrollPane 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221301/
我正在尝试获得一个按钮,按下该按钮时会改变颜色。当再次按下时,它应该变回原来的颜色。我究竟做错了什么? 我的模板中的按钮: export default { data: {
我是一名优秀的程序员,十分优秀!