java - 来自另一个类的框架中的 JComponent repaint()

标签 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 类,它有一个绘制组件。

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/

相关文章:

java - 插入数据时出现无效数据库路径错误

java - 如何移动屏幕上的对象

PHP oop 如何以更简单的方式调用另一个类方法?

c++ - 让单元测试成为它正在测试的类的 friend 有什么问题?

Java-OOP 我不断收到这种奇怪的输出

javascript - 在 Java 中映射 JSON 对象

java - SAX 解析器如何工作?

java - 在 Java 中使用递归的 ConcurrentModificationException

Java Swing JTextField setInputVerifier 保持关注 TextField

java - Swing:JDialogs 如何与 JFrame 对话