Java,Swing:如何设置JTextField的最大宽度?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (733)

我正在编写自定义文件选择组件。在我的UI中,首先用户点击一个按钮,弹出一个按钮JFileChooser; 当它关闭时,所选文件的绝对路径被写入a JTextField

问题是,绝对路径通常很长,导致文本字段放大,使其容器太宽。

我试过这个,但它没有做任何事情,文本字段仍然太宽:

fileNameTextField.setMaximumSize(new java.awt.Dimension(450, 2147483647));

目前,当它是空的时,它已经是400px长,因为GridBagConstraints附着它。

我希望它像HTML页面中的文本字段一样,它具有固定的大小,并且在输入太长时不会放大。

那么,如何设置最大尺寸JTextField

提问于
用户回答回答于

通过使用设置文本字段容器的最大宽度来解决这个问题setMaximumSize

根据davetron的回答,这是一个脆弱的解决方案,因为布局经理可能会忽视该属性。就我而言,容器是最顶层的,并且在第一次测试中它起作用。

用户回答回答于

不要在文本字段中设置任何大小。而是通过setColumns或使用带有column参数的构造函数将列大小设置为非零值。

发生的事情是,当列为零时,JTextComponent报告的首选大小是呈现文本所需的全部空间量。当列设置为非零值时,首选大小是显示许多标准列宽的所需大小。(对于可变间距字体,它通常接近小写字母“m”的大小)。将列设置为零时,文本字段请求尽可能多的空间并扩展整个容器。

由于您已经在带填充的GridBagLayout中使用了它,因此您可以将列设置为1并让填充根据其他组件或其他适当的低数量将其拉伸。

所属标签

可能回答问题的人

  • gulu丶咕噜

    0 粉丝1 提问4 回答
  • 找虫虫

    6 粉丝0 提问3 回答
  • 朝夕熊博客

    1 粉丝2 提问3 回答
  • 女淘日记

    杭州吱吱吱科技 · 站长 (已认证)

    1 粉丝1 提问3 回答

扫码关注云+社区

领取腾讯云代金券