JComponent在另一个类的框架中重绘()

时间:2013-08-26 01:52:59

标签: java swing oop reference

我正在为有趣的开发和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类,它有一个paint组件。

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()方法。我已经阅读了很多关于这个主题但我没有在代码中看到这个特殊的例子。

1 个答案:

答案 0 :(得分:3)

您想要的是JPanel super.paintComponent(g);中的paintComponent。它使所有的孩子也被重新粉刷。覆盖组件(包括JPanel)时,永远不应删除它。

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