簡體   English   中英

調整JFrame的大小后,paintComponent中的圖形消失

[英]Graphics in the paintComponent disappear after resizing the JFrame

我是Java初學者,我正在創建一個使用箭頭鍵繪制線條的程序,其中下一行從第一行的末尾開始。 現在,我創建了它,但是問題是,每當我調整窗口大小時,圖形都會消失。

這是我的代碼:

public class draw extends JPanel {

    int up = 1, down = 0, left = 0, right = 0;
    int beginX, beginY;

    @Override
    public void paintComponent(Graphics g) {

        if(up == 1){
            beginX = getWidth() / 2;
            beginY = getHeight() / 2;
        }
        if (up > 0) {
            g.drawLine(beginX, beginY, (beginX), (beginY - up));
            beginY -= (up);
            up = 0;
        } else if (down > 0) {
            g.drawLine(beginX, beginY, beginX, (beginY + down));
            beginY += down;
            down = 0;
        } else if (right > 0) {
            g.drawLine(beginX, beginY, (beginX + right), beginY);
            beginX += right;
            right = 0;
        } else if (left > 0) {
            g.drawLine(beginX, beginY, (beginX - left), beginY);
            beginX -= (left);
            left = 0;
        }

    }

    public void drawUp() {
        up += 3;
        repaint();
    }

    public void drawDown() {
        down += 3;
        repaint();
    }

    public void drawLeft() {
        left += 3;
        repaint();
    }

    public void drawRight() {
        right += 3;
        repaint();
    }
}    

paintComponent應該繪制組件的當前圖形,而不僅僅是您要添加的圖形。 因此,您現在有兩種方法,要么記住所有線條並全部繪制,要么創建一個單獨的緩沖區以在生成線條時進行繪制,並在需要重繪時使用該緩沖區在組件上繪制。

暫無
暫無

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

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