-
Notifications
You must be signed in to change notification settings - Fork 0
/
CircleController3.java
executable file
·101 lines (100 loc) · 3.25 KB
/
CircleController3.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
public class CircleController3 extends JPanel
implements CircleEvents, ActionListener
{ private static final long serialVersionUID = 1L;
private CircleModel3 model;
private int circleCounter = 1;
private JTextField jtfRadius = new JTextField();
private JComboBox<Boolean> jcboFilled =
new JComboBox<Boolean>(new Boolean[]
{ new Boolean(false), new Boolean(true)
});
private JComboBox<Boolean> jcboCalculateArea =
new JComboBox<Boolean>(new Boolean[]
{ new Boolean(false), new Boolean(true)
});
private JLabel jlblColor = new JLabel();
private JButton jbtChooseColor = new JButton("...");
final String inputError = "radis must be > 0.0";
final String chooseAcolor = "Choose a Color";
public CircleController3(int circleCounter)
{ this.circleCounter = circleCounter;
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(4, 1));
panel1.add(new JLabel(eventType.RADIUS.toString()));
panel1.add(new JLabel(eventType.FILLED.toString()));
panel1.add(new JLabel(eventType.AREA.toString()));
panel1.add(new JLabel(eventType.COLOR.toString()));
JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayout(4, 1));
panel2.add(jtfRadius);
panel2.add(jcboFilled);
panel2.add(jcboCalculateArea);
JPanel colorPanel = new JPanel();
colorPanel.setLayout(new BorderLayout());
jlblColor.setOpaque(true);
colorPanel.add(jlblColor, BorderLayout.CENTER);
colorPanel.add(jbtChooseColor, BorderLayout.EAST);
colorPanel.setBorder(
new LineBorder(Color.red));
panel2.add(colorPanel);
setLayout(new BorderLayout());
add(panel1, BorderLayout.WEST);
add(panel2, BorderLayout.CENTER);
jtfRadius.addActionListener(this);
jcboFilled.addActionListener(this);
jcboCalculateArea.addActionListener(this);
jbtChooseColor.addActionListener(this);
}
public int getcircleCounter()
{ return circleCounter;
}
public int setcircleCounter(int circleCounter)
{ return this.circleCounter = circleCounter;
}
@Override
public void actionPerformed(ActionEvent e)
{ if (model == null) return;
if (e.getSource() == jtfRadius)
{ try
{ double radius =
new Double(jtfRadius.getText()).doubleValue();
if (radius <= 0)
{ jtfRadius.setText(inputError);
return;
}
model.setRadius(radius);
}
catch (Exception ex)
{ jtfRadius.setText(inputError);
return;
}
}
else
if (e.getSource() == jcboFilled)
model.setFilled(
((Boolean)jcboFilled.getSelectedItem()).booleanValue());
else
if (e.getSource() == jbtChooseColor)
{ Color selectedColor = JColorChooser.showDialog(this,
chooseAcolor, jlblColor.getBackground());
if (selectedColor != null)
{ jlblColor.setBackground(selectedColor);
model.setColor(selectedColor);
}
}
else
if (e.getSource() == jcboCalculateArea)
model.setCalculateArea(((Boolean)jcboCalculateArea.
getSelectedItem()).booleanValue());
}
public void setModel(CircleModel3 newModel)
{ model = newModel;
}
public CircleModel3 getModel()
{ return model;
}
}