43 import java.awt.event.*;
52 @SuppressWarnings(
"serial")
60 setLayout(
new BorderLayout());
74 controls.setEnabled(
true);
79 controls.setEnabled(
false);
84 if (e.getID() == Event.WINDOW_DESTROY) {
89 public static void main(String args[]) {
90 Frame f =
new Frame(
"ArcTest");
96 f.add(
"Center", arcTest);
103 return "An interactive test of the Graphics.drawArc and \nGraphics."
104 +
"fillArc routines. Can be run \neither as a standalone "
105 +
"application by typing 'java ArcTest' \nor as an applet in "
106 +
"the AppletViewer.";
111 @SuppressWarnings(
"serial")
116 boolean filled =
false;
117 Font
font =
new java.awt.Font(
"SansSerif", Font.PLAIN, 12);
121 Rectangle r = getBounds();
122 int hlines = r.height / 10;
123 int vlines = r.width / 10;
125 g.setColor(Color.pink);
126 for (
int i = 1; i <= hlines; i++) {
127 g.drawLine(0, i * 10, r.width, i * 10);
129 for (
int i = 1; i <= vlines; i++) {
130 g.drawLine(i * 10, 0, i * 10, r.height);
133 g.setColor(Color.red);
135 g.fillArc(0, 0, r.width - 1, r.height - 1, startAngle, extent);
137 g.drawArc(0, 0, r.width - 1, r.height - 1, startAngle, extent);
140 g.setColor(Color.black);
142 g.drawLine(0, r.height / 2, r.width, r.height / 2);
143 g.drawLine(r.width / 2, 0, r.width / 2, r.height);
144 g.drawLine(0, 0, r.width, r.height);
145 g.drawLine(r.width, 0, 0, r.height);
147 int sy = r.height - 28;
148 g.drawString(
"Start = " + startAngle, sx, sy);
149 g.drawString(
"Extent = " + extent, sx, sy + 14);
152 public void redraw(
boolean filled,
int start,
int extent) {
153 this.filled = filled;
154 this.startAngle = start;
155 this.extent = extent;
161 @SuppressWarnings(
"serial")
163 implements ActionListener {
169 @SuppressWarnings(
"LeakingThisInConstructor")
176 b =
new Button(
"Fill");
177 b.addActionListener(
this);
179 b =
new Button(
"Draw");
180 b.addActionListener(
this);
186 String label = ev.getActionCommand();
190 start = Integer.parseInt(startTF.getText().trim());
191 }
catch (NumberFormatException ignored) {
195 extent = Integer.parseInt(extentTF.getText().trim());
196 }
catch (NumberFormatException ignored) {
200 canvas.redraw(label.equals(
"Fill"), start, extent);
205 @SuppressWarnings(
"serial")
208 String oldText =
null;
212 enableEvents(AWTEvent.KEY_EVENT_MASK | AWTEvent.TEXT_EVENT_MASK);
223 int id = evt.getID();
224 if (
id != KeyEvent.KEY_TYPED) {
225 super.processEvent(evt);
229 KeyEvent kevt = (KeyEvent) evt;
230 char c = kevt.getKeyChar();
234 if (Character.isDigit(c) || (c ==
'\b') || (c ==
'\u007f') || (c
236 super.processEvent(evt);
240 Toolkit.getDefaultToolkit().beep();
252 String newText = getText();
253 if (newText.equals(
"") || textIsInteger(newText)) {
255 super.processTextEvent(te);
259 Toolkit.getDefaultToolkit().beep();
270 Integer.parseInt(textToCheck, 10);
272 }
catch (NumberFormatException ignored) {