我正在致力于开发有趣的 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
的末尾能够重新绘制任何扩展 JComponent
的类repaint()
方法。我确信可以做到这一点,但我不确定如何做到。
我希望我的所有图形类都有一些引用来的组件,例如绘制到屏幕上的所有卡片。我希望屏幕上的每个组件都有一个单独的类,然后调用其 repaint()
方法,该方法应调用该特定类的 paintComponent()
方法。我已经阅读了很多有关该主题的内容,但我还没有在代码中看到这个特定的示例。
最佳答案
您想要的是 JPanel 的 paintComponent
中的 super.paintComponent(g);
。它导致它的所有子项也被重新绘制。当您覆盖组件(包括 JPanel)时,您不应该删除它。
public void paintComponent(Graphics g) {
super.paintComponent(g);
adv.isOptimizedDrawingEnabled();
adv.setEnabled(true);
adv.repaint();
}
关于java - 来自另一个类的框架中的 JComponent repaint(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435582/