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

使用 GridBagLayout 在 JPanel 内居中组件

使用 GridBagLayout 在 JPanel 内居中组件

炎炎设计 2021-07-13 13:10:35
我试图将一些组件放在 JPanel 中,当我在 JPanel 的 GridBagLayout 的“自定义布局”选项中按“测试布局”时,一切正常,但是当我运行程序时,它看起来不同。它应该是这样的:相反,当我运行程序时,它看起来像这样:该程序的结构如下:所以有两个问题:密码字段大于电子邮件地址字段。我已经尝试将最小、最大和首选大小设置为 (14, 22) 到它们,但它不起作用。为什么按钮是分开的,我怎样才能让它们连接起来?(右边的按钮有 0 个左边的插图)
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

不要使用 setPreferredSize()。


每个 Swing 组件将根据组件的属性确定自己的大小。在许多情况下,这将基于组件的文本。


对于没有默认文本的文本字段,您应该创建如下组件:


//emailTextField = new javax.swing.JTextField();

//passwordField = new javax.swing.JPasswordField();

emailTextField = new javax.swing.JTextField(20);

passwordField = new javax.swing.JPasswordField(10);

因此组件可以确定其首选大小以显示 20/10 个字符。(它实际上调整自己的大小以显示“W”字符)。


此外,通常不需要设置组件的最小/最大大小,因为除非您填充单元格,否则 GridBagLayout 将遵循首选大小。


查看完整回答
反对 回复 2021-07-23
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

我不确定密码字段,但对于单独的按钮,您可以创建一个带有框布局的新面板。然后,您可以将按钮放在那里。之后,您可以将新面板放入主面板中。这在我当前的项目中有效。希望它也适用于你的。


查看完整回答
反对 回复 2021-07-23
  • 3 回答
  • 0 关注
  • 257 浏览

添加回答

举报

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