簡體   English   中英

另一個類在框架中的JComponent repaint()

[英]JComponent repaint() in frame from another class

我正在為開發有趣的游戲和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類,具有繪畫Component。

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()方法。 我已經閱讀了很多有關該主題的文章,但是我沒有在代碼中看到這個特定的示例。

您想要的是super.paintComponent(g); 在JPanel的paintComponent中。 它會導致所有子項也重新粉刷。 當您覆蓋組件(包括JPanel)時,永遠不要刪除它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM