我正在编写自定义文件选择组件。在我的UI中,首先用户点击一个按钮,弹出一个按钮JFileChooser
; 当它关闭时,所选文件的绝对路径被写入a JTextField
。
问题是,绝对路径通常很长,导致文本字段放大,使其容器太宽。
我试过这个,但它没有做任何事情,文本字段仍然太宽:
fileNameTextField.setMaximumSize(new java.awt.Dimension(450, 2147483647));
目前,当它是空的时,它已经是400px长,因为GridBagConstraints
附着它。
我希望它像HTML页面中的文本字段一样,它具有固定的大小,并且在输入太长时不会放大。
那么,如何设置最大尺寸JTextField
?
发布于 2018-10-23 09:21:30
不要在文本字段中设置任何大小。而是通过setColumns或使用带有column参数的构造函数将列大小设置为非零值。
发生的事情是,当列为零时,JTextComponent报告的首选大小是呈现文本所需的全部空间量。当列设置为非零值时,首选大小是显示许多标准列宽的所需大小。(对于可变间距字体,它通常接近小写字母“m”的大小)。将列设置为零时,文本字段请求尽可能多的空间并扩展整个容器。
由于您已经在带填充的GridBagLayout中使用了它,因此您可以将列设置为1并让填充根据其他组件或其他适当的低数量将其拉伸。
发布于 2018-10-23 10:41:12
通过使用设置文本字段容器的最大宽度来解决这个问题setMaximumSize
。
根据davetron的回答,这是一个脆弱的解决方案,因为布局经理可能会忽视该属性。就我而言,容器是最顶层的,并且在第一次测试中它起作用。
https://stackoverflow.com/questions/-100000872
复制相似问题