java中的drawLine方法怎么重新画线的时候保留刚才画的线?帮我看看下面的程序该怎么改才能实现?

staticclassgetPanelextendsJPanel{privateintx=200;privateinty=200;privateintx2=x;priva... static class getPanel extends JPanel {

private int x = 200;

private int y = 200;

private int x2 = x ;

private int y2 = y ;

public getPanel() {

addKeyListener(new KeyAdapter() {

@Override

public void keyPressed(KeyEvent arg0) {

int xtemp;

int ytemp;

switch (arg0.getKeyCode()) {

case KeyEvent.VK_UP:

xtemp=x2;

ytemp=y2;

x=xtemp;

y=ytemp;

x2=x;

y2-=50;

break;

case KeyEvent.VK_DOWN:

xtemp = x2;

ytemp = y2;

x = xtemp;

y = ytemp;

x2 = x;

y2 += 50;

break;

case KeyEvent.VK_LEFT:

xtemp = x2;

ytemp = y2;

x = xtemp;

y = ytemp;

x2 -= 50;

y2 = y;

break;

case KeyEvent.VK_RIGHT:

xtemp = x2;

ytemp = y2;

x = xtemp;

y = ytemp;

x2 += 50;

y2 = y;

break;

default:

break;

}

repaint();

}

});

}

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.setColor(Color.BLACK);

g.drawLine(x, y, x2, y2);

}

}

}
展开
 我来答
xjf5562
2015-04-12 · TA获得超过1190个赞
知道小有建树答主
回答量:896
采纳率:75%
帮助的人:740万
展开全部
你把 super.paintComponent(g); 去除看看。
更多追问追答
追问
果然可以了,能简单解释一下为什么吗?谢谢了
追答
super.paintComponent()方法会重画组件,你画在上面的图形都没有保存,当然就没有了。所以复杂一点的画板程序,都会创建一个以上的集合以保存图形信息(保存为点或线段的形式),以便在重画组件时把原先画上去的图形也画出来。当然程序也要复杂繁琐许多。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式