老师让做一个用java画图的软件,例如画矩形。。我捕获鼠标事件,画出矩形,但是必须松开鼠标才能显示画好的矩形,用什么方法可以像画板一样即时在屏幕上显示画的痕迹?

解决方案 »

  1.   

    没有代码,大体说说思路,在一个JFrame中添加一个JPanel并给该JPanel对象添加MouseListener及MouseMotionListener,在鼠标按下时通过MouseListener的mousePressed(MouseEvent e)  方法的e.getX() ,e.getY()分别获取鼠标按下时的x、y坐标pressx,pressy,当鼠标拖动时通过MouseMotionListener的mouseDragged(MouseEvent e) 方法的e.getX() ,e.getY()随时获取鼠标按下时的x、y坐标dragx,dragy,在JPanel的paintComponents(Graphics g)
    中通过g.drawRect(int x, int y, int width, int height) 画出矩形,其中的x,y,width,height由于鼠标拖动方向不一样会根据pressx,pressy,dragx,dragy算出,例如鼠标向右下方拖动时,x=pressx,y=pressy,width=dragx-pressx,height=dragy-pressy.你需要通过判断pressx和dragx同时还有pressy的差值决定,记得要在mouseDragged(MouseEvent e) 方法中repaint();
    祝你成功!!