展开全部
你的程序很混乱,我给你62616964757a686964616fe4b893e5b19e31333363366261写了一个鼠标拖动出现方形框的Java程序,你看看吧.
H5.javaimport java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
class Point{
int x;
int y;
}
class MyRectPanel extends JPanel implements MouseListener,MouseMotionListener{
ArrayList al=new ArrayList();
int x,y;
MyRectPanel(){
setBackground(Color.WHITE);
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g){
super.paint(g);
for(int i=0;i
int width=Math.abs(al.get(i+1).x-al.get(i).x);
int height=Math.abs(al.get(i+1).y-al.get(i).y);
g.drawRect(al.get(i).x,al.get(i).y,width,height);//画矩形
}
if(al.size()>=1){
int width=Math.abs(x-al.get(al.size()-1).x);
int height=Math.abs(y-al.get(al.size()-1).y);
g.drawRect(al.get(al.size()-1).x,al.get(al.size()-1).y,width,height);
}
}
@Override
public void mouseClicked(MouseEvent me) {}
@Override
public void mouseEntered(MouseEvent me) {}
@Override
public void mouseExited(MouseEvent me) {}
@Override
public void mousePressed(MouseEvent me) {
Point p=new Point();
p.x=me.getX();
p.y=me.getY();
al.add(p);
}
@Override
public void mouseReleased(MouseEvent me) {
Point p=new Point();
p.x=me.getX();
p.y=me.getY();
al.add(p);
repaint();
}
@Override
public void mouseDragged(MouseEvent me) {
x=me.getX();
y=me.getY();
repaint();
}
@Override
public void mouseMoved(MouseEvent me) {}
}
public class H5 extends JFrame{
MyRectPanel p=new MyRectPanel();
H5(){
super("DrawRectangleDemo");
add(p);
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLocationRelativeTo(null);
}
public static void main(String[] args) {
new H5();
}
}
运行结果