- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPatternView.java
More file actions
Latest commit
executable file
·67 lines (55 loc) · 2.03 KB
/
Copy pathPatternView.java
File metadata and controls
executable file
·67 lines (55 loc) · 2.03 KB
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
importjava.awt.*;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JSlider;
importjavax.swing.event.ChangeEvent;
importjavax.swing.event.ChangeListener;
publicclassPatternViewextendsJPanel {
intframe_height;
intframe_width;
intcircles = 3;
PatternView(intframe_width, intframe_height) {
this.frame_height = frame_height;
this.frame_width = frame_width;
// Frame
JFrameframe = newJFrame();
frame.setSize(frame_width, frame_height);
frame.setDefaultCloseOperation(3);
frame.add(this);
this.setBackground(newColor(229, 222, 206, 255));
// Slider
JSliderslider = newJSlider(JSlider.VERTICAL, 0, 12, 3);
slider.setBackground(null);
slider.setPaintLabels(false);
slider.addChangeListener(newChangeListener() {
@Override
publicvoidstateChanged(ChangeEvente) {
circles = Integer.valueOf(((JSlider) (e.getSource())).getValue());
repaint();
}
});
slider.setMajorTickSpacing(1);
slider.setPaintTicks(true);
// Layout
this.setLayout(newBorderLayout());
this.add(slider, BorderLayout.EAST);
frame.setVisible(true);
}
publicvoidpaint(Graphicsg) {
super.paint(g);
// Pen properties
Graphics2Dg2 = (Graphics2D) g;
g2.translate(this.getWidth() / 2, this.getHeight() / 2);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
BasicStrokestroke = newBasicStroke(10);
g2.setStroke(stroke);
// Center circle parametres
intcenter_diameter = 20;
intcenter_x = -center_diameter / 2;
intcenter_y = center_x;
//Drawing
for (inti = 0; i < circles; i++) {
Pattern.drawPattern(center_x, center_y, center_diameter, i, g2);
}
}
}