![](/img/trans.png)
[英]How to reset graphics with paintComponent on transparent JFrame?
[英]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.