我需要创建一个具有自定义颜色和字体的类XLabel
。
我需要所有JLabels
具有以下作用
JLabelTest.setFont(new Font("Comic Sans MS", Font.BOLD, 20));
JLabelTest.setForeground(Color.PINK);
这就是我尝试过的
public class XLabel extends JLabel {
@Override
public void setFont(Font f)
{
super.setFont(new Font("Comic Sans MS", Font.BOLD, 20));
repaint();
}
@Override
public void setForeground(Color fg)
{
super.setForeground(Color.PINK);
repaint();
}
}
但是,当我尝试使用它时,
XLabel test= new XLabel("test")
不会编译,因为构造函数XLabel (String )
是未定义的。但是它扩展了JLabel
,因此它应该继承其所有构造函数。为什么不呢?如何设置自定义的颜色和字体? 最佳答案
您无需重写这些方法。 JLabel
是一个抽象类,因此XLabel
自动继承那些方法。从XLabel
类中删除这些方法,然后尝试在构造函数中指定前景和字体。
public class XLabel extends JLabel {
public XLabel(String text) {
super(text);
this.setForeground(Color.BLACK);
this.setFont(new Font("Comic Sans MS", Font.BOLD, 20));
}
然后,无论何时创建
XLabel
的实例,都会自动调用方法setForeground()
和setFont()
。这使得XLabel的任何实例的颜色均为粉红色,字体为Comic Sans。