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

Leo*_*nel 9 java swing jtextfield

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

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

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

fileNameTextField.setMaximumSize(new java.awt.Dimension(450, 2147483647));
Run Code Online (Sandbox Code Playgroud)

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

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

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

dav*_*000 13

它可能取决于您的文本字段所在的布局管理器.某些布局管理器会扩展,而有些则不会.有些只在某些情况下扩展,有些则总是扩展.

我假设你在做

filedNameTextField = new JTextField(80); // 80 == columns
Run Code Online (Sandbox Code Playgroud)

如果是这样,对于大多数合理的布局,字段不应该改变大小(至少,它不应该增长).布局经理在投入JScrollPanes 时经常表现不佳.

根据我的经验,试图控制大小通过setMaximumSizesetPreferredWidth等等都是危险的境地.Swing自己决定使用布局管理器,你几乎无能为力.

所有这一切,我没有遇到你遇到的问题,这让我相信一些明智的布局管理器的使用将解决问题.