簡體   English   中英

如何在Java中重繪圖形?

[英]How to repaint figures in java?

我嘗試繪制一些圖形,如下所示(我未包括涉及main方法的其他類)...它不會重新繪制的問題我只得到了三條粗線作為輸出,但它應該繪制一個橢圓形和兩個矩形,以便當while循環工作時它們在框架中移動...

package shapes;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class GamePanel extends JPanel {

    int n1=0;
    int n2=0;
    int n3=0;

    @Override
    public void paintComponent(Graphics g) {
        do {
        // super.paintComponent(g);
        g.drawRect(n1++, 33, 54, 84);
        g.setColor(Color.BLUE);
        g.fillRect(100, n2++, 56, 97);
//      g.setColor(Color.BLUE);
        g.drawOval(44, n3++, 44, 66);


        } while (n1<=500 && n2<=500 && n3<=500);
        n1++;
        n2++;
        n3++;
        repaint();
      }
    }

如何更正代碼以使其重新繪制每個循環的圖形,從而使其不顯示三條粗線? (我希望包含do命令)..謝謝

  1. super.paintComponent任何自定義繪畫之前(而不是在循環內)調用super.paintComponent
  2. 不要在paint方法中調用repaint ,這可能會設置無限的repaint循環,這可能會消耗您的所有CPU周期。
  3. 改用Swing Timer生成計划的更新和動畫

暫無
暫無

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

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