在版面管理器中,当我使用setPreferedSize时,它会增加JLabel的大小,但在使用JLabel = Name后仅显示一个词,例如(setPreferedSize JLabel)会变得像N...。但是setFont正常工作。

谁能说出setFontsetPreferredSize的行为之间的确切区别?

最佳答案

但是setFont可以正常工作。


确实,这是您应该使用的唯一方法。当您使用setFont()方法时,该组件负责确定首选大小。该组件将考虑字体,文本,边框等信息,以确定其首选大小。

当您调用setPreferredSize()时,您是在告诉组件您知道的更多,而您却不知道,因为您只是在猜测。如果您的猜测太小,则会看到“ ...”,因为没有足够的空间来绘制整个文本。

Don't use setPreferredSize()!

09-05 13:55