1 import java.awt.Graphics;
2 import java.awt.Graphics2D;
3 import java.awt.Rectangle;
4 import javax.swing.JComponent;
5
6 /**
7 This component displays a rectangle that can be moved.
8 */
9 public class RectangleComponent3 extends JComponent
10 {
11 private static final int BOX_X = 100;
12 private static final int BOX_Y = 100;
13 private static final int BOX_WIDTH = 20;
14 private static final int BOX_HEIGHT = 30;
15
16 private Rectangle box;
17
18 public RectangleComponent3()
19 {
20 // The rectangle that the paintComponent method draws
21 box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT);
22 }
23
24 public void paintComponent(Graphics g)
25 {
26 Graphics2D g2 = (Graphics2D) g;
27 g2.draw(box);
28 }
29
30 /**
31 Moves the rectangle to the given location.
32 @param x the x-position of the new location
33 @param y the y-position of the new location
34 */
35 public void moveRectangleTo(int x, int y)
36 {
37 box.setLocation(x, y);
38 repaint();
39 }
40
41 /**
42 Moves the rectangle by a given amount.
43 @param dx the amount to move in the x-direction
44 @param dy the amount to move in the y-direction
45 */
46 public void moveRectangleBy(int dx, int dy)
47 {
48 box.translate(dx, dy);
49 repaint();
50 }
51 }