forked from degtor/ADVIS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BasicPhotoUI.java
81 lines (55 loc) · 2.17 KB
/
BasicPhotoUI.java
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
//photoCompUI
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.plaf.ComponentUI;
public class BasicPhotoUI extends PhotoCompAbstractUI implements MouseListener {
// Creates and return an instance of your UI class
public static ComponentUI createUI(JComponent c) {
System.out.println("CreatedUI" + c);
return new BasicPhotoUI();
}
// Register 'this' UI Instance as the listener for the component's input events
public void installUI(JComponent c) {
System.out.println("InstalledUI");
((PhotoComponent) c).addMouseListener(this); // we’ll handle mouse events for the Photo component
}
// Unregister 'this' UI instance as the listener for the components input events
public void uninstallUI(JComponent c) {
System.out.println("UninstalledUI");
((PhotoComponent) c).removeMouseListener(this);
}
//Step 3
@Override
public void paint(Graphics g, JComponent c) {
System.out.println("Painting in UI");
super.paint(g, c);
Graphics2D g2 = (Graphics2D) g.create();
g2.drawImage(image, 0, 0, null);
PhotoComponent pc = (PhotoComponent) c;
PhotoModel model = pc.getModel();
Image i = model.getImage();
//g.drawImage(i, 0, 0, this);
// do painting for the component here!
//2. • Your component will automatically delegate its drawing to your UI’s paint() method
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
// implement the various MouseListener methods...
// • 3. Implement any interfaces you need in order to respond to input events
// • Example: if your component must respond to the mouse, have your UI class implement MouseListener. You’ll tell the component to send any mouse events to your UI to be handled there.
// • 4. Draw yourself correctly given your current size • Recall that your parent component may resize you! In your painting code, use the current size (getWidth()/getHeight()) and draw in the space alloted to you.
}