谁能给一个拖动鼠标画直线的关键代码 万分感激

解决方案 »

  1.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class DrawLine extends JFrame{
    Point p1;
    Point p2;
    public DrawLine(){
    setSize(400,300);
    LinePanel pane = new LinePanel();
    pane.addMouseListener(pane);
    setContentPane(pane);
    setVisible(true);
    }
    public static void main(String[] args){
    DrawLine myDrawLine = new DrawLine();
    }
    }
    class LinePanel extends JPanel implements MouseListener{
    Point p1;
    Point p2;
    public void paintComponent(Graphics g){
    Graphics2D g2D = (Graphics2D) g;
    g2D.drawLine(p1.x, p1.y, p2.x, p2.y);
    }
    public void mousePressed(MouseEvent evt){
    p1 = evt.getPoint();
    }
    public void mouseReleased(MouseEvent evt){
    p2 = evt.getPoint();
    repaint();
    }
    public void mouseClicked(MouseEvent evt){}
    public void mouseEntered(MouseEvent evt){}
    public void mouseExited(MouseEvent evt){}
    }
      

  2.   

    参考core java v1,献丑!import java.awt.event.*;
    import javax.swing.*;
    import java.awt.*;
    import java.util.*;
    import java.awt.geom.*;public class LineTest
    {
    public static void main(String args[])
    {
    LineFrame frame = new LineFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
    };class LineFrame extends JFrame
    {
    public LineFrame()
    {
    setTitle("LineTest");
    setSize(300,400);
    LinePanel panel = new LinePanel();
    Container con=getContentPane();
    con.add(panel);
    }
    };class LinePanel extends JPanel
    {
    public LinePanel()
    {
    super();
    linearray = new ArrayList();
    addMouseListener(new MouseAdapter()
    {
    public void mousePressed(MouseEvent e)
    {
    linearray.clear();
    linearray.add(e.getPoint());
    linearray.add(e.getPoint());
    }
    }); addMouseMotionListener(new MouseMotionAdapter()
    {
    public void mouseDragged(MouseEvent e)
    {
    linearray.add(e.getPoint());
    repaint();
    }
    });
    }   public void paintComponent(Graphics g)
       {  
          super.paintComponent(g);
          Graphics2D g2 = (Graphics2D)g;
          for (int i = 0; i < linearray.size()-1; i++)
          g2.drawLine((int)(((Point)(linearray.get(i))).getX()),
      (int)(((Point)(linearray.get(i))).getY()),
      (int)(((Point)(linearray.get(i+1))).getX()),
      (int)(((Point)(linearray.get(i+1))).getY()));
       }
    private ArrayList linearray;
    };
      

  3.   

    import java.awt.*;
    import java.awt.event.*;
    public class MousePaint extends Frame implements MouseListener
    {
     static MousePaint frm=new MousePaint ();
     static int x1=0,x2=0,y1=0,y2=0;
     public static void main(String args[])
     {
      frm.setTitle("鼠标作图");
      frm.setSize(200,150);
      frm.addMouseListener(frm);
      frm.setVisible(true);
     }
     
     public void mouseEntered(MouseEvent e) { } 
     public void mouseClicked(MouseEvent e) { }
     public void mouseExited(MouseEvent e) { }
     public void mousePressed(MouseEvent e) {  x1=e.getX();  y1=e.getY(); }
     public void mouseReleased(MouseEvent e) { x2=e.getX();  y2=e.getY();  repaint(); } 
     public void paint(Graphics g)
     {
      g.setColor(Color.blue);
      g.drawLine(x1,y1,x2,y2);
     }