随着字符串长度的增加,自动更改Swing组件中的字体大小

时间:2015-07-21 13:16:54

标签: java swing jtextfield

我有JTextField显示如下的行号:2或2.1或2.1.1等。我希望JTextField的大小始终保持不变但我想要字体要减小/增加的大小,以便文本始终完全显示并填充文本字段。

我想知道是否有一种简单的方法可以做到这一点(我不介意使用不同的摇摆组件)或者我是否必须手动操作,即通过检查文本的大小和更改文本字段大小?

我显然不愿意这样做,因为尺寸增量可能不是一个很好的数字,例如2.1至2.1.1。

2 个答案:

答案 0 :(得分:2)

  

随着字体缩小,JTextField变小。

文本字段的首选大小取决于字体。因此,随着字体大小的变化,大小会增加/减少。覆盖getPreferredSize()的{​​{1}}方法以提供您自己的实现。

可能是这样的:

JTextField

答案 1 :(得分:1)

我不知道任何执行此操作的组件,但您可以通过扩展jTextField并使用它来自行编写 FontMetrics.stringWidth() 确定字体大小(例如,在重载setText上)。