importjava.awt.Color;importjava.awt.Graphics;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.awt.event.MouseMotionListener;importjavax.swing.JFrame;importjavax.swing.JPanel;public class DrawWithPanel extendsJFrame{private static final long serialVersionUID=1L;
DrawWithPanel(){super("可拖动的圆");this.getContentPane().add(newPaintPanel());this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setBounds(50,50,750,700);this.setVisible(true);
}class PaintPanel extends JPanel implementsMouseListener,MouseMotionListener{private static final long serialVersionUID=1L;
Color color=new Color(0,0,0);int startX=130,startY=140,width=150,height=150;publicPaintPanel() {
addMouseListener(this);
addMouseMotionListener(this);
}protected voidpaintComponent(Graphics g) {
g.setColor(Color.white);
g.fillRect(0, 0, 750, 700);
g.setColor(color);
g.fillOval(startX, startY, width, height);
}
@Overridepublic voidmouseDragged(MouseEvent e) {
color=Color.pink;
startX=startX+2;
startY=startY+2;
width=width+2;
height=height+2;
repaint();
}
@Overridepublic voidmouseMoved(MouseEvent e) {
}
@Overridepublic voidmouseClicked(MouseEvent e) {
color=Color.yellow;
startX=130;
startY=140;
width=150;
height=150;
repaint();
}
@Overridepublic voidmousePressed(MouseEvent e) {
}
@Overridepublic voidmouseReleased(MouseEvent e) {
color=Color.blue;
startX=130;
startY=140;
width=150;
height=150;
repaint();
}
@Overridepublic voidmouseEntered(MouseEvent e) {
}
@Overridepublic voidmouseExited(MouseEvent e) {
}
}public static voidmain(String args[])
{newDrawWithPanel();
}
}