我正在开发一款有趣的老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);
}
}
我希望能够在JPanel
中paintComponent
的末尾重新绘制任何使用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();
}