在 paint 方法中调用时 JLabel 不显示
JLabel not showing when called in paint method
我有以下代码:
public class Canvas extends JPanel{
JLabel label = new JLabel();
public void init()
{
label.setSize(100, 100);
label.setLocation(10, 10);
label.setText("lalallaalal");
this.add(label);
}
@Override
public void paint(Graphics g) {
super.paint(g);
paintRoad(g);
paintBorders(g);
paintEnemies(g, enemies);
paintPlayer(g);
}
我希望每次重绘 JPanel
时都重绘标签,但是当我将 this.add(label)
放在 paint
方法的末尾时,它不显示标签。
知道为什么吗?
paint()
调用 paintComponent()
。最好覆盖 paintComponent
而不是 paint
.
protected void paintComponent(Graphics g)
不使用 JLabel,尝试在绘画方法中使用 drawString(String str, int X, int y) 方法。
public void paint(Graphics g){
g.drawString(label.getText(), 110, 110);
}
我有以下代码:
public class Canvas extends JPanel{
JLabel label = new JLabel();
public void init()
{
label.setSize(100, 100);
label.setLocation(10, 10);
label.setText("lalallaalal");
this.add(label);
}
@Override
public void paint(Graphics g) {
super.paint(g);
paintRoad(g);
paintBorders(g);
paintEnemies(g, enemies);
paintPlayer(g);
}
我希望每次重绘 JPanel
时都重绘标签,但是当我将 this.add(label)
放在 paint
方法的末尾时,它不显示标签。
知道为什么吗?
paint()
调用 paintComponent()
。最好覆盖 paintComponent
而不是 paint
.
protected void paintComponent(Graphics g)
不使用 JLabel,尝试在绘画方法中使用 drawString(String str, int X, int y) 方法。
public void paint(Graphics g){
g.drawString(label.getText(), 110, 110);
}