KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > RenderingAccuracy


1 /**
2  * Copyright (c) 2004-2006 Regents of the University of California.
3  * See "license-prefuse.txt" for licensing terms.
4  */

5 package test;
6
7 import java.awt.Color JavaDoc;
8 import java.awt.Dimension JavaDoc;
9 import java.awt.Graphics JavaDoc;
10 import java.awt.Graphics2D JavaDoc;
11 import java.awt.geom.Line2D JavaDoc;
12 import java.awt.geom.Rectangle2D JavaDoc;
13
14 import javax.swing.JComponent JavaDoc;
15 import javax.swing.JFrame JavaDoc;
16
17 /**
18  * @author <a HREF="http://jheer.org">jeffrey heer</a>
19  */

20 public class RenderingAccuracy extends JComponent JavaDoc {
21
22     public RenderingAccuracy() {
23         setPreferredSize(new Dimension JavaDoc(100,120));
24         setBackground(Color.WHITE);
25         setForeground(new Color JavaDoc(100,100,255));
26     }
27     
28     public void paintComponent(Graphics JavaDoc g) {
29         Graphics2D JavaDoc g2D = (Graphics2D JavaDoc)g;
30         g2D.setColor(getBackground());
31         g2D.fillRect(0, 0, getWidth(), getHeight());
32         g2D.setColor(getForeground());
33         rects(g2D);
34         lines(g2D);
35     }
36     
37     public void rects(Graphics2D JavaDoc g2D) {
38         Rectangle2D JavaDoc r = new Rectangle2D.Double JavaDoc();
39         double x = 10, y = 4;
40         int inc = 5;
41         
42         // g2D.draw() - vary start coord
43
for ( int i=0; i<=10; ++i ) {
44             r.setFrame(x+i*0.1, y+5*i, 2, 3);
45             g2D.draw(r);
46         } x += inc;
47         
48         // g2D.draw() - vary width
49
for ( int i=0; i<=10; ++i ) {
50             r.setFrame(x, y+5*i, 2+i*0.1, 3);
51             g2D.draw(r);
52         } x += inc;
53         
54         // g2D.fill() - vary start coord
55
for ( int i=0; i<=10; ++i ) {
56             r.setFrame(x+i*0.1, y+5*i, 2, 3);
57             g2D.fill(r);
58         } x += inc;
59         
60         // g2D.fill() - vary width
61
for ( int i=0; i<=10; ++i ) {
62             r.setFrame(x, y+5*i, 2+i*0.1, 3);
63             g2D.fill(r);
64         } x += inc;
65         
66         x += inc;
67         
68         // optimized draw - vary start coord
69
for ( int i=0; i<=10; ++i ) {
70             r.setFrame(x+i*0.1, y+5*i, 2, 3);
71             draw(g2D, r);
72         } x += inc;
73         
74         // optimized draw - vary width
75
for ( int i=0; i<=10; ++i ) {
76             r.setFrame(x, y+5*i, 2+i*0.1, 3);
77             draw(g2D, r);
78         } x += inc;
79         
80         // optimized fill - vary start coord
81
for ( int i=0; i<=10; ++i ) {
82             r.setFrame(x+i*0.1, y+5*i, 2, 3);
83             fill(g2D, r);
84         } x += inc;
85         
86         // optimized fill - vary width
87
for ( int i=0; i<=10; ++i ) {
88             r.setFrame(x, y+5*i, 2+i*0.1, 3);
89             fill(g2D, r);
90         } x += inc;
91         
92         // -- next row -------------------------------
93
x = 10.35; y += 60;
94         
95         // g2D.draw() - vary start coord
96
for ( int i=0; i<=10; ++i ) {
97             r.setFrame(x+i*0.1, y+5*i, 2, 3);
98             g2D.draw(r);
99         } x += inc;
100         
101         // g2D.draw() - vary width
102
for ( int i=0; i<=10; ++i ) {
103             r.setFrame(x, y+5*i, 2+i*0.1, 3);
104             g2D.draw(r);
105         } x += inc;
106         
107         // g2D.fill() - vary start coord
108
for ( int i=0; i<=10; ++i ) {
109             r.setFrame(x+i*0.1, y+5*i, 2, 3);
110             g2D.fill(r);
111         } x += inc;
112         
113         // g2D.fill() - vary width
114
for ( int i=0; i<=10; ++i ) {
115             r.setFrame(x, y+5*i, 2+i*0.1, 3);
116             g2D.fill(r);
117         } x += inc;
118         
119         x += inc;
120         
121         // optimized draw - vary start coord
122
for ( int i=0; i<=10; ++i ) {
123             r.setFrame(x+i*0.1, y+5*i, 2, 3);
124             draw(g2D, r);
125         } x += inc;
126         
127         // optimized draw - vary width
128
for ( int i=0; i<=10; ++i ) {
129             r.setFrame(x, y+5*i, 2+i*0.1, 3);
130             draw(g2D, r);
131         } x += inc;
132         
133         // optimized fill - vary start coord
134
for ( int i=0; i<=10; ++i ) {
135             r.setFrame(x+i*0.1, y+5*i, 2, 3);
136             fill(g2D, r);
137         } x += inc;
138         
139         // optimized fill - vary width
140
for ( int i=0; i<=10; ++i ) {
141             r.setFrame(x, y+5*i, 2+i*0.1, 3);
142             fill(g2D, r);
143         } x += inc;
144     }
145     
146     public void lines(Graphics2D JavaDoc g2D) {
147         Line2D JavaDoc r = new Line2D.Double JavaDoc();
148         double x = 60, y = 4;
149         int inc = 5;
150         
151         // g2D.draw() - vary start coord
152
for ( int i=0; i<=10; ++i ) {
153             double x1 = x+i*0.1;
154             double y1 = y+5*i;
155             r.setLine(x1, y1, x1+2, y1);
156             g2D.draw(r);
157         } x += inc;
158         
159         // g2D.draw() - vary width
160
for ( int i=0; i<=10; ++i ) {
161             double x2 = x + 2+i*0.1;
162             double y1 = y+5*i;
163             r.setLine(x, y1, x2, y1);
164             g2D.draw(r);
165         } x += inc;
166         
167         x += inc;
168         
169         // optimized draw - vary start coord
170
for ( int i=0; i<=10; ++i ) {
171             double x1 = x+i*0.1;
172             double y1 = y+5*i;
173             r.setLine(x1, y1, x1+2, y1);
174             draw(g2D, r);
175         } x += inc;
176         
177         // optimized draw - vary width
178
for ( int i=0; i<=10; ++i ) {
179             double x2 = x + 2+i*0.1;
180             double y1 = y+5*i;
181             r.setLine(x, y1, x2, y1);
182             draw(g2D, r);
183         } x += inc;
184         
185         // -- next row -------------------------------
186
x = 60+0.35; y += 60;
187         
188         // g2D.draw() - vary start coord
189
for ( int i=0; i<=10; ++i ) {
190             double x1 = x+i*0.1;
191             double y1 = y+5*i;
192             r.setLine(x1, y1, x1+2, y1);
193             g2D.draw(r);
194         } x += inc;
195         
196         // g2D.draw() - vary width
197
for ( int i=0; i<=10; ++i ) {
198             double x2 = x + 2+i*0.1;
199             double y1 = y+5*i;
200             r.setLine(x, y1, x2, y1);
201             g2D.draw(r);
202         } x += inc;
203         
204         x += inc;
205         
206         // optimized draw - vary start coord
207
for ( int i=0; i<=10; ++i ) {
208             double x1 = x+i*0.1;
209             double y1 = y+5*i;
210             r.setLine(x1, y1, x1+2, y1);
211             draw(g2D, r);
212         } x += inc;
213         
214         // optimized draw - vary width
215
for ( int i=0; i<=10; ++i ) {
216             double x2 = x + 2+i*0.1;
217             double y1 = y+5*i;
218             r.setLine(x, y1, x2, y1);
219             draw(g2D, r);
220         } x += inc;
221     }
222     
223     public void draw(Graphics2D JavaDoc g, Line2D JavaDoc r) {
224         int x1 = (int)r.getX1();
225         int y1 = (int)r.getY1();
226         int x2 = (int)r.getX2();
227         int y2 = (int)r.getY2();
228         g.drawLine(x1, y1, x2, y2);
229     }
230     
231     public void draw(Graphics2D JavaDoc g, Rectangle2D JavaDoc r) {
232         int x = (int)r.getMinX();
233         int y = (int)r.getMinY();
234         int w = (int)(r.getWidth() +r.getMinX()-x);
235         int h = (int)(r.getHeight()+r.getMinY()-y);
236         g.drawRect(x, y, w, h);
237     }
238     
239     public void fill(Graphics2D JavaDoc g, Rectangle2D JavaDoc r) {
240         int x = (int)r.getMinX();
241         int y = (int)r.getMinY();
242         int w = (int)(r.getWidth() +r.getMinX()-x);
243         int h = (int)(r.getHeight()+r.getMinY()-y);
244         g.fillRect(x, y, w, h);
245     }
246     
247     /**
248      * @param args
249      */

250     public static void main(String JavaDoc[] args) {
251         JFrame JavaDoc f = new JFrame JavaDoc("rendering accuracy");
252         f.setContentPane(new RenderingAccuracy());
253         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
254         f.pack();
255         f.setVisible(true);
256     }
257
258 }
259
Popular Tags