Java拖曳鼠标实现画线功能的方法
本文实例主要实现Java拖曳鼠标画线的功能,为了达到画线的功能,分别用implementsMouseListener与MouseMotionListener,并且由mousePressed(),mouseReleased()取得鼠标拖曳的开始与结束坐标。这是一个掌握Java鼠标事件的很好的范例。
具体实现代码如下:
importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclassMouseDemoextendsJFrameimplementsMouseListener, MouseMotionListener{ intflag;//flag=1代表MouseMoved,flag=2代表MouseDragged intx=0; inty=0; intstartx,starty,endx,endy;//起始坐标与终点坐标 publicMouseDemo(){ ContainercontentPane=getContentPane(); contentPane.addMouseListener(this); contentPane.addMouseMotionListener(this); setSize(300,300); show(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); } /*由mousePressed(),mouseReleased()取得鼠标拖曳的开始与结束坐标*/ publicvoidmousePressed(MouseEvente){ startx=e.getX(); starty=e.getY(); } publicvoidmouseReleased(MouseEvente){ endx=e.getX(); endy=e.getY(); } publicvoidmouseEntered(MouseEvente){ } publicvoidmouseExited(MouseEvente){ } publicvoidmouseClicked(MouseEvente){ } /*mouseMoved(),mouseDragged()取得鼠标移动的每一个坐标,并调用repaint()方法*/ publicvoidmouseMoved(MouseEvente){ flag=1; x=e.getX(); y=e.getY(); repaint(); } publicvoidmouseDragged(MouseEvente){ flag=2; x=e.getX(); y=e.getY(); repaint(); } publicvoidupdate(Graphicsg){ g.setColor(this.getBackground()); g.fillRect(0,0,getWidth(),getHeight());//清除当前的窗口内容 paint(g); } publicvoidpaint(Graphicsg){ g.setColor(Color.black); if(flag==1){ g.drawString("鼠标坐标:("+x+","+y+")",10,50); g.drawLine(startx,starty,endx,endy); } if(flag==2){ g.drawString("拖曳鼠标价坐标:("+x+","+y+")",10,50); g.drawLine(startx,starty,x,y); } } publicstaticvoidmain(String[]args){ newMouseDemo(); } }
该程序在画线过程中,拖拽时会显示鼠标坐标。读者还可以根据自身需求对该程序进行修改和完善,使之更加具有实用性。