我是一名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();
}
} 发布于 2012-02-11 19:46:16
paintComponent应该绘制组件的当前图形,而不仅仅是您想要添加的图形。因此,您现在有两种方法,一种是记住所有线条并绘制它们,另一种方法是在生成线条时创建一个单独的缓冲区用于绘制,并在组件要求重新绘制时使用该缓冲区在组件上进行绘制。
https://stackoverflow.com/questions/9239893
复制相似问题