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



我正在开发一款有趣的老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);
  }
}

我希望能够在JPanelpaintComponent的末尾重新绘制任何使用repaint()方法扩展JComponent的类。我确信这是可以做到的,但我不确定如何做到

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

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

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

最新更新