![](/img/trans.png)
[英]Repaint() not calling paintComponent() in JComponent class
[英]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.