0

我需要有关它不起作用的paintComponent的帮助,请帮助:( ps:我有所有的进口......

public JavaGame() {
    setVisible(true);
    setSize(500, 500);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setLocationRelativeTo(null);
    setTitle("Java Game");
}

public void paintComponent (Graphics g)
{
    super.paintComponents(g);
    g.drawString("Hello World!", 20, 20);
}

public static void main(String[] args) {
            new JavaGame();
}
4

2 回答 2

3

JFrame 不是JComponent,它没有paintComponent可以覆盖的方法。(添加@Override注释以查看此内容)

也应该是

super.paintComponent(g);

paintComponent方法移动到扩展的新类JComponent

@Override
protected void paintComponent (Graphics g) {
    super.paintComponent(g);
    g.drawString("Hello World!", 20, 20);
}
于 2013-08-06T20:52:33.777 回答
2

JFrame 只有一个paintComponents()java.awt.Container类继承的方法,而 JPanel 具有paintComponent()从类继承的方法javax.swing.JComponent。大多数时候你想使用后者来绘制,但是你的JavaGame类是一个 JFrame 子类。我建议您将 JPanel 添加到 JFrame 并通过覆盖paintComponent() 在标签上绘制。

于 2013-08-06T20:55:04.670 回答