为了账号安全,请及时绑定邮箱和手机立即绑定

Swing GroupLayout:调整和限制组件大小

Swing GroupLayout:调整和限制组件大小

噜噜哒 2019-07-03 10:21:38
Swing GroupLayout:调整和限制组件大小我在用GroupLayout管理动态生成的数据输入表单中的组件。布局大致如下:*-----------------------------------------------*| label A     |   field A                       | | label B     |   field B                       || label C     |   field C                       |*-----------------------------------------------*我在水平布局中使用两个并行组,对垂直布局使用一个顺序组。在大多数情况下,一切都很正常。我想限制标签的最大宽度(这只是JLabel)到父级宽度的1/3。JFrame..如果JFrame是一个固定的大小我在接ComponentListener.componentResized()事件JFrame但一旦我收到这样的一件事,我就会被困在该怎么做的问题上。我尝试过这种方法,但没有任何结果:public void componentResized(ComponentEvent e) {     int maxW = parentFrame.getWidth() / 3;     for (JLabel l : labels) {         l.setMaximumSize( // have also tried setSize() and setPreferredSize()             new Dimension(                 Math.min(l.getSize().width, maxW),                 l.getMaximumSize().height));     }     groupLayout.invalidateLayout(getContentSpace());}有人能建议一种限制标签宽度的方法吗?我可能每次都可以从头开始重建布局,但我觉得应该有一个更简单的方法。
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

这是一个很明显的例子,所以谢谢你。您提供的代码与我自己已经实现的代码几乎相同,但关键是“您不需要为大多数组件…指定任何内容,因为组件本身具有默认的调整大小行为”。我认为我的标签需要是覆盖getPreferredSize()的自定义实现。

查看完整回答
反对 回复 2019-07-03
  • 2 回答
  • 0 关注
  • 1605 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信