java吧 关注:1,247,573贴子:12,725,778
  • 2回复贴,共1

画个矩形,但不是想要的,求解答

只看楼主收藏回复

package com.chaptor_12;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.*;
import java.awt.geom.Rectangle2D;
import java.util.Vector;
/**
* Created by kuikui on 2017/5/10.
*/
public class drawPanel extends JPanel {
private Vector<Rectangle2D> d_vector=new Vector<>();
private Rectangle2D current;
private Point startPoint;
private Point endPoint;
public drawPanel()
{
addMouseListener(new Mousepressed());
addMouseMotionListener(new MouseDragg());
}
public Dimension getPreferredSize(){return new Dimension(400,400);}
public class Mousepressed implements MouseListener
{
public void mousePressed(MouseEvent e)
{
startPoint=new Point(e.getPoint());
current=new Rectangle2D.Double(startPoint.getX(),startPoint.getY(),0,0);
d_vector.add(current);
}
public void mouseClicked(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
endPoint=new Point(e.getPoint());
int n=d_vector.size()-1;
current=new Rectangle2D.Double(startPoint.getX(),startPoint.getY(),endPoint.getX()-startPoint.getX(),endPoint.getY()-startPoint.getY());
d_vector.set(n,current);
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
}
public class MouseDragg implements MouseMotionListener
{
public void mouseMoved(MouseEvent e)
{
}
public void mouseDragged(MouseEvent e)
{
Point p=new Point (e.getPoint());
int n=d_vector.size()-1;
current=new Rectangle2D.Double(startPoint.getX(),startPoint.getY(),p.getX()-startPoint.getX(),p.getY()-startPoint.getY());
d_vector.set(n,current);
repaint();
}
}
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D) g;
for (Rectangle2D r:d_vector)
{
g2.draw(r);
}
}
}
class drawFrame extends JFrame
{
public drawFrame()
{
add(new drawPanel());
}
public static void main(String args[])
{
drawFrame frame=new drawFrame();
frame.setDefaultCloseOperation(3);
frame.pack();
frame.setVisible(true);
}
}


来自Android客户端1楼2017-05-11 09:37回复
    我想问下mouseDragg具体用法


    来自Android客户端2楼2017-05-11 09:38
    回复


      来自Android客户端3楼2017-05-11 09:41
      回复