java 画图问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:19:03
在一个面板上用鼠标按下和弹起消息来drawline了N次,改变窗口大小的时候线会消失,应该怎样保持那些线不消失?
public void mouseReleased(MouseEvent e) {
g = getGraphics();
lineEnd.move(e.getX(), e.getY());update(g);
g.drawLine(lineStart.x, lineStart.y, lineEnd.x, lineEnd.y);
g.dispose();
}

public void mousePressed(MouseEvent e) {
lineStart.move(e.getX(), e.getY());
}
补充: 只能在paintComponent中画? 如何和上面的事件关联起来?

java绘图要长期保持,要重写:
AWT—paint(Graphics)
swing—paintComponent(Graphics)
方法。
=====================================================
你意思是鼠标动作都画出相应的形状吧。
你目前要画的都是线,那么这样做,程序主体里放一个队列,用Vector和ArrayList实现都可以。
鼠标动作发生后,把要画的线对象创建好,并加到这个队列里。再调用组件的repain()方法刷新.
而在repaintComponent方法里,从那个队列中依次提取每个要画的对象,画出它。

可以用个数组来记录各个点。然后窗口恢复时重画