0

我正在为有趣的开发和 80 年代的 80 岁扑克游戏而工作。

class DDHGamePanel extends JPanel{
...etc...   
DDHAdvertising adv = new DDHAdvertising();
...etc...

 public void paintComponent(Graphics g) {
adv.isOptimizedDrawingEnabled();
adv.setEnabled(true);
adv.repaint();
 }
}

这是我游戏的主面板。我拿出了很多代码来使它更适合。我有一个类 DDHAdvertising 有一个绘画组件。

public class DDHAdvertising extends JComponent {

 public void paintComponent(Graphics g) {
           super.paintComponent(g);  
    drawAdvertisingBanner(g,getBanner1(),30,30);
    g.drawString ("Test",40,360);
  }
}

我希望能够paintComponent在我JPanel能够重新绘制任何JComponent使用该repaint()方法扩展的类的末尾。我确信这是可以做到的,但我不知道该怎么做。

我希望我的所有图形类都有一些引用来的组件,例如所有被绘制到屏幕上的卡片。我希望屏幕上的每个组件都有一个单独的类,然后调用它的repaint()方法,该方法应该调用该paintComponent()特定类的方法。我已经阅读了很多关于这个主题的内容,但我没有在代码中看到这个特定的例子。

4

1 回答 1

3

你想要的是super.paintComponent(g);paintComponentJPanel 中。它会导致其所有子项也被重新绘制。当你覆盖一个组件(包括 JPanel)时,你永远不应该删除它。

 public void paintComponent(Graphics g) {
     super.paintComponent(g);
     adv.isOptimizedDrawingEnabled();
     adv.setEnabled(true);
     adv.repaint();
 }
于 2013-08-26T02:11:47.670 回答