我创建了一个扩展 JLabel 的类,因为它通常没有抗锯齿。但是,当我使用它时,JLabel 的整个定位都被打破了。这怎么可能? 这是该类的代码:
private class AntialiasedJLabel extends JLabel{
public AntialiasedJLabel(){}
public AntialiasedJLabel(String name){
this.setText(name);
}
public void paintComponent(Graphics g){
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g.drawString(getText(),getX(),getY());
}
}
这是使用普通 JLabel 的结果:
这里使用 AntialiasedJLabel:
这可能是什么问题?
最佳答案
不要自己做定制绘画。而是这样做:
Graphics g2 = g.create();
g2.setRenderingHint(...);
super.paintComponent(g2);
g2.dispose();
关于java - 自定义 JLabel 类打破了 JLabel 的定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20619250/