Java 如何覆盖JLabel的颜色和字体?
我需要创建一个具有自定义颜色和字体的类Java 如何覆盖JLabel的颜色和字体?,java,jlabel,Java,Jlabel,我需要创建一个具有自定义颜色和字体的类XLabel 我需要所有的jlabel才能产生以下效果 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)
XLabel
我需要所有的jlabel
才能产生以下效果
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(String)
未定义,因此XLabel test=newxlabel(“test”)
不会编译。但是它扩展了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的任何实例都具有粉红色和字体 这正是我所做的。但这会导致重复的代码。当我有成百上千的JLabel
元素和setFont
和setForeground
元素时。啊。您没有在问题中指定需要多个具有这些确切属性的jlabel。您只需为XLabel
创建一个构造函数,用于设置字体和前景。我会用正确的代码更新我的答案。谢谢你的更新。我也试过了。此构造函数仅适用于在没有任何参数的情况下实例化的情况。当我使用XLabel test=newxlabel(“test”)
时,它将不起作用,因为构造函数XLabel(String)未定义
谢谢。我花了好几个小时在paintComponent
和其他方法上,没有问题!另外,更好的方法是现在就使用super(text)
。再次编辑它。但无论哪种方法都有效。可能是重复的