1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
class JPanel extends javax.swing.JPanel implements MouseListener, MouseMotionListener
{
private static final long serialVersionUID = 1L;
Rectangle2D rect = null; // @jve:decl-index=0:
/**
* @param args
*/
public static void main(String[] args)
{
JFrame frame = new JFrame();
JPanel p = new JPanel();
frame.add(p, BorderLayout.CENTER);
frame.setVisible(true);
}
/**
* This is the default constructor
*/
public JPanel()
{
super();
initialize();
addMouseListener(this);
addMouseMotionListener(this);
}
/**
* This method initializes this
*
* @return void
*/
private void initialize()
{
this.setSize(300, 200);
this.setLayout(new GridBagLayout());
}
public void paint(Graphics g)
{
// Dessine le rectangle.
g.setColor(Color.gray);
g.fillRect(0,0, getWidth(), getHeight());
dessineTonRectangle(g, rect);
}
private void dessineTonRectangle(Graphics g, Rectangle2D rect)
{
if (rect!=null)
{
g.setColor(Color.red);
g.drawRect((int)rect.getX(),(int)rect.getY(),(int)rect.getWidth(),(int)rect.getHeight());
g.setColor(Color.BLACK);
g.fillRect((int)rect.getCenterX()-2,(int)rect.getCenterY()-2,4,4);
}
}
@Override
public void mousePressed(MouseEvent e)
{
if (rect==null)
rect = new Rectangle2D.Double(e.getX(), e.getY(), 0, 0);
rect.setRect(e.getX(), e.getY(), 0, 0);
repaint();
}
@Override
public void mouseDragged(MouseEvent e)
{
rect.setRect(rect.getX(), rect.getY(), e.getX()-rect.getX(), e.getY()-rect.getY());
repaint();
}
} |
Partager