Java Swing中设置JLabel字体加粗报错,求排查解决方法
解决Java Swing JLabel设置字体时的两个错误
错误原因分析
错误1:
BOLD cannot be resolved or is not a field
你导入了JavaFX的javafx.scene.text.Font类,这个类里没有BOLD静态常量,而Swing组件依赖的java.awt.Font才定义了BOLD、PLAIN、ITALIC这类字体样式常量。错误2:
The method setFont(java.awt.Font) in the type JComponent is not applicable for the arguments (javafx.scene.text.Font)
Swing的JLabel继承自JComponent,它的setFont方法仅接受java.awt.Font类型的参数,你传入的是JavaFX的Font对象,类型不匹配导致调用失败。
解决方案
方法1:修正导入语句
确保代码导入的是Swing对应的字体类:
import java.awt.Font; import javax.swing.JLabel;
之后正常编写代码即可:
JLabel label = new JLabel(); label.setFont(new Font("Calibri", Font.BOLD, 20));
方法2:使用全限定类名(避免包冲突)
如果项目同时用到JavaFX和Swing,不想修改导入语句,可以直接用全限定类名指定java.awt.Font:
JLabel label = new JLabel(); label.setFont(new java.awt.Font("Calibri", java.awt.Font.BOLD, 20));
内容的提问来源于stack exchange,提问作者Rebecca Wulf
相关产品推荐
相关产品推荐

