我想将文本(必须采用 HTML 格式,因此无法在 PaintComponent
中使用 drawString
)放入 Circle 内。问题是“paintComponent
”在绘制标签后被调用,因此它覆盖了我的文本。
如何在开头绘制椭圆形,然后绘制我的字符串?
class Circle extends JLabel
{
public Circle(String string) { super(string); }
@Override
public void paintComponent( Graphics g )
{
super.paintComponent(g);
g.setColor(Color.yellow);
g.fillOval(0,0, 70, 70);
g.setColor(Color.blue);
g.drawOval(0,0, 70, 70);
}
}
最佳答案
可能最快的解决方案是将您的 paintComponent
更改为
public void paintComponent( Graphics g )
{
g.setColor(Color.yellow);
g.fillOval(0,0, 70, 70);
g.setColor(Color.blue);
g.drawOval(0,0, 70, 70);
super.paintComponent(g);
}
但是,在这种情况下,我也会考虑组合而不是继承。也许定义另一个由标签和带有圆圈的面板组成的组件类。
关于java - 圆圈内的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16980095/