我正在编写自定义文件选择组件.在我的UI中,首先用户点击一个按钮,弹出一个按钮JFileChooser
; 当它关闭时,所选文件的绝对路径被写入a JTextField
.
问题是,绝对路径通常很长,导致文本字段放大,使其容器太宽.
我试过这个,但它没有做任何事情,文本字段仍然太宽:
fileNameTextField.setMaximumSize(new java.awt.Dimension(450, 2147483647));
目前,当它是空的时,它已经是400px长,因为GridBagConstraints
附着它.
我希望它像HTML页面中的文本字段一样,它具有固定的大小,并且在输入太长时不会放大.
那么,如何设置最大尺寸JTextField
?
它可能取决于您的文本字段所在的布局管理器.某些布局管理器会扩展,而有些则不会.有些只在某些情况下扩展,有些则总是扩展.
我假设你在做
filedNameTextField = new JTextField(80); // 80 == columns
如果是这样,对于大多数合理的布局,字段不应该改变大小(至少,它不应该增长).布局经理在投入JScrollPane
s 时经常表现不佳.
根据我的经验,试图控制大小通过setMaximumSize
和setPreferredWidth
等等都是危险的境地.Swing自己决定使用布局管理器,你几乎无能为力.
所有这一切,我没有遇到你遇到的问题,这让我相信一些明智的布局管理器的使用将解决问题.