Project

General

Profile

GraphicsOpsExamples2.java

Sergey Ivanovskiy, 08/28/2015 03:55 PM

Download (9.79 KB)

 
1
package test;
2

    
3

    
4
import javax.swing.*;
5

    
6
import com.goldencode.p2j.ui.client.gui.driver.LineStroke;
7

    
8
import java.awt.*;
9
import java.awt.geom.Line2D;
10

    
11
public class GraphicsOpsExamples2
12
{
13
   static class StrokeManager
14
   {
15
      // initialize dot pattern 
16
      private final Stroke dotStroke = new BasicStroke(LineStroke.DOT_LINE_WIDTH,
17
               BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, new float[] {
18
                        LineStroke.DOT_STEP, LineStroke.DOT_STEP }, LineStroke.DOT_STEP);
19

    
20
      private final Stroke dotSmallStroke = new BasicStroke(LineStroke.DOT_LINE_WIDTH,
21
               BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, new float[] {
22
                        LineStroke.DOT_STEP_SMALL, LineStroke.DOT_STEP_SMALL },
23
               LineStroke.DOT_STEP_SMALL);
24

    
25
      private final Stroke dotSmallThinStroke = new BasicStroke(LineStroke.DOT_LINE_THIN_WIDTH,
26
               BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, new float[] {
27
                        LineStroke.DOT_STEP_SMALL, LineStroke.DOT_STEP_SMALL },
28
               LineStroke.DOT_STEP_SMALL);
29

    
30
      public final void setLineStroke(Graphics2D g2, LineStroke stroke, int strokeWidth)
31
      { // default line stroke
32
         Stroke javaStroke;
33

    
34
         switch (stroke)
35
         {
36
            case SPECIFIED_WIDTH:
37
               javaStroke = new BasicStroke(strokeWidth);
38
               break;
39
            case DOTTED:
40
               javaStroke = dotStroke;
41
               break;
42
            case DOTTED_SMALL:
43
               javaStroke = dotSmallStroke;
44
               break;
45
            case DOTTED_SMALL_THIN:
46
               javaStroke = dotSmallThinStroke;
47
               break;
48
            default:
49
               javaStroke = new BasicStroke();
50
         }
51

    
52
         g2.setStroke(javaStroke);
53
      }
54
   }
55

    
56
   public static void main(String[] args)
57
   {
58
      SwingUtilities.invokeLater(new Runnable()
59
      {
60
         public void run()
61
         {
62
            final JFrame frame = new JFrame("Graphics Operations");
63
            frame.setSize(800, 600);
64
            frame.setLocation(150, 150);
65
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
66
            
67
            final StrokeManager strokeManager = new StrokeManager();
68
            frame.setContentPane(new JComponent()
69
            {
70
               public void paint(Graphics g)
71
               {
72
                  Graphics2D g2 = (Graphics2D) g;
73
                  g2.setBackground(Color.white);
74
                  g2.clearRect(0, 0, 800, 600);
75
                  g2.setColor(Color.black);
76
                  strokeManager.setLineStroke(g2, LineStroke.SPECIFIED_WIDTH, 1);
77
                  g2.drawLine(10, 10, 790, 30);
78
                  g2.drawLine(10, 30, 790, 10);
79
                  g2.drawRect(40, 40, 55, 30);
80
                  //g2.fillRect(125, 40, 55, 30);
81
                  g2.drawLine(210, 40, 210, 70);
82
                  g2.drawLine(241, 40, 241, 70);
83
                  g2.drawLine(250, 40, 305, 40);
84
                  g2.drawLine(250, 70, 305, 70);
85

    
86
                  g2.drawLine(320, 40, 350, 70);
87
                  g2.drawLine(320, 70, 350, 40);
88
                  
89
                  strokeManager.setLineStroke(g2, LineStroke.SPECIFIED_WIDTH, 2);
90
                  g2.drawLine(10, 80, 790, 100);
91
                  g2.drawLine(10, 100, 790, 80);
92
                  g2.drawRect(40, 110, 55, 30);
93
                  //g2.fillRect(125, 110, 55, 30);
94
                  g2.drawLine(210, 110, 210, 140);
95
                  g2.drawLine(241, 110, 241, 140);
96
                  g2.drawLine(250, 110, 305, 110);
97
                  g2.drawLine(250, 140, 305, 140);
98
                  
99
                  g2.drawLine(320, 110, 350, 140);
100
                  g2.drawLine(320, 140, 350, 110);
101

    
102
                  strokeManager.setLineStroke(g2, LineStroke.SPECIFIED_WIDTH, 3);
103
                  g2.drawLine(10, 150, 790, 170);
104
                  g2.drawLine(10, 170, 790, 150);
105
                  g2.drawRect(40, 180, 55, 30);
106
                  //g2.fillRect(125, 180, 55, 30);
107
                  g2.drawLine(210, 180, 210, 210);
108
                  g2.drawLine(241, 180, 241, 210);
109
                  g2.drawLine(250, 180, 305, 180);
110
                  g2.drawLine(250, 210, 305, 210);
111
                  g2.drawLine(320, 180, 350, 210);
112
                  g2.drawLine(320, 210, 350, 180);
113

    
114
                  strokeManager.setLineStroke(g2, LineStroke.DOTTED, 3);
115
                  g2.drawLine(10, 220, 790, 240);
116
                  g2.drawLine(10, 240, 790, 220);
117
                  g2.drawRect(40, 250, 55, 30);
118
                  //g2.fillRect(125, 250, 55, 30);
119
                  g2.drawLine(210, 250, 210, 280);
120
                  g2.drawLine(241, 250, 241, 280);
121
                  g2.drawLine(250, 250, 305, 250);
122
                  g2.drawLine(250, 280, 305, 280);
123
                  g2.drawLine(320, 250, 350, 280);
124
                  g2.drawLine(320, 280, 350, 250);
125
                  strokeManager.setLineStroke(g2, LineStroke.DOTTED_SMALL, 3);
126
                  g2.drawLine(10, 290, 790, 310);
127
                  g2.drawLine(10, 310, 790, 290);
128
                  g2.drawRect(40, 320, 55, 30);
129
                  //g2.fillRect(125, 320, 55, 30);
130
                  g2.drawLine(210, 320, 210, 350);
131
                  g2.drawLine(241, 320, 241, 350);
132
                  g2.drawLine(250, 320, 305, 320);
133
                  g2.drawLine(250, 350, 305, 350);
134
                  g2.drawLine(320, 320, 350, 350);
135
                  g2.drawLine(320, 350, 350, 320);
136
                  strokeManager.setLineStroke(g2, LineStroke.DOTTED_SMALL_THIN, 3);
137
                  g2.drawLine(10, 360, 790, 380);
138
                  g2.drawRect(40, 390, 55, 30);
139
                  //g2.fillRect(125, 390, 55, 30);
140
                  g2.drawLine(210, 390, 210, 420);
141
                  g2.drawLine(241, 390, 241, 420);
142
                  g2.drawLine(250, 390, 305, 390);
143
                  g2.drawLine(250, 420, 305, 420);
144
                  g2.drawLine(320, 390, 350, 420);
145
                  g2.drawLine(320, 420, 350, 390);
146

    
147
                  
148
                  
149
//                PaintPrimitives.TRANSLATE_POP 1; x = -358; y = -4
150
//                PaintPrimitives.TRANSLATE_PUSH 2; x = 379; y = 4
151
//                PaintPrimitives.CLIP 3; x = 0; y = 0; width = 20; height = 18
152
//                PaintPrimitives.SET_COLOR r = 240; g = 240; b = 240
153
//                PaintPrimitives.FILL_3D_RECT x = 0; y = 0; width = 19; height = 17; raised = true
154
//                PaintPrimitives.SET_COLOR r = 0; g = 0; b = 0
155
//                PaintPrimitives.SET_LINE_STROKE strokeStyleId = 1; strokeWidth = 2
156
//                PaintPrimitives.DRAW_LINE x1 = 4; y1 = 3; x2 = 15; y2 = 14
157
//                PaintPrimitives.DRAW_LINE x1 = 4; y1 = 14; x2 = 15; y2 = 3
158
//                PaintPrimitives.DRAW_LINE x1 = 5; y1 = 14; x2 = 16; y2 = 3
159
//                PaintPrimitives.SET_COLOR r = 240; g = 240; b = 240
160
//                PaintPrimitives.FILL_RECT x = 2; y = 2; width = 15; height = 2
161
//                PaintPrimitives.FILL_RECT x = 2; y = 14; width = 15; height = 2
162
//                PaintPrimitives.SET_COLOR r = 0; g = 0; b = 0
163
//                PaintPrimitives.SET_LINE_STROKE strokeStyleId = 0; strokeWidth = 0
164
                  strokeManager.setLineStroke(g2, LineStroke.SPECIFIED_WIDTH, 2);
165
                  g2.setColor(Color.black);
166
                  g2.translate(250, 450);
167
                  g2.drawLine(4, 3, 15, 14);
168
                  g2.drawLine(4, 14, 15, 3);
169
                  g2.drawLine(5, 14, 16, 3);
170
                  g2.setColor(Color.white);
171
                  g2.fillRect(2, 2, 15, 2);
172
                  g2.fillRect(2, 14, 15, 2);
173
                  
174
                  g2.translate(30, 0);
175
                  g2.setColor(Color.black);
176
                  Line2D.Float l1 = new Line2D.Float(4, 3, 15, 14);
177
                  g2.draw(g2.getStroke().createStrokedShape(l1));
178
                  Line2D.Float l2 = new Line2D.Float(4, 14, 15, 3);
179
                  g2.draw(g2.getStroke().createStrokedShape(l2));
180
                  g2.setColor(Color.white);
181
                  g2.fillRect(2, 2, 15, 2);
182
                  g2.fillRect(2, 14, 15, 2);
183

    
184
                  g2.translate(30, 0);
185
                  g2.setColor(Color.black);
186
                  Polygon p1 = new Polygon();
187
                  p1.addPoint(4, 3);
188
                  p1.addPoint(5, 4);
189
                  p1.addPoint(6, 5);
190
                  p1.addPoint(7, 6);
191
                  p1.addPoint(8, 7);
192
                  p1.addPoint(9, 8);
193
                  p1.addPoint(10, 9);
194
                  p1.addPoint(11, 10);
195
                  p1.addPoint(12, 11);
196
                  p1.addPoint(13, 12);
197
                  p1.addPoint(14, 13);
198
                  p1.addPoint(15, 14);
199
                  g2.draw(p1);
200
                  Polygon p2 = new Polygon();
201
                  p2.addPoint(4, 14);
202
                  p2.addPoint(5, 13);
203
                  p2.addPoint(6, 12);
204
                  p2.addPoint(7, 11);
205
                  p2.addPoint(8, 10);
206
                  p2.addPoint(9, 9);
207
                  p2.addPoint(10, 8);
208
                  p2.addPoint(11, 7);
209
                  p2.addPoint(12, 6);
210
                  p2.addPoint(13, 5);
211
                  p2.addPoint(14, 4);
212
                  p2.addPoint(15, 3);
213
                  p2.addPoint(5, 14);
214
                  p2.addPoint(6, 13);
215
                  p2.addPoint(7, 12);
216
                  p2.addPoint(8, 11);
217
                  p2.addPoint(9, 10);
218
                  p2.addPoint(10, 9);
219
                  p2.addPoint(11, 8);
220
                  p2.addPoint(12, 7);
221
                  p2.addPoint(13, 6);
222
                  p2.addPoint(14, 5);
223
                  p2.addPoint(15, 4);
224
                  p2.addPoint(16, 3);
225
                  g2.draw(p2);
226
                  g2.setColor(Color.white);
227
                  g2.fillRect(2, 2, 15, 2);
228
                  g2.fillRect(2, 14, 15, 2);
229
               }
230
            });
231
            
232
            frame.setVisible(true);
233
         }
234
      });
235
   }
236
}
237