📄 arctest.java
字号:
import java.awt.event.*;
import java.applet.*;
import java.awt.*;
public class ArcTest extends Applet
{
ArcControls controls;
public void init()
{
setLayout( new BorderLayout() );
ArcCanvas c = new ArcCanvas();
add( c, "Center" );
controls = new ArcControls(c);
add( controls, "South" );
}
public void start()
{
controls.setEnabled( true );
}
public void stop()
{
controls.setEnabled( false );
}
}
class ArcCanvas extends Canvas
{
int startAngle = 0;
int endAngle = 45;
boolean filled = false;
public void paint(Graphics g)
{
Rectangle r = getBounds();
int hlines = r.height/10;
int vlines = r.width/10;
//画背景网格
g.setColor(Color.pink);
for( int i = 1; i <= hlines; i++ )
{
g.drawLine(0, i*10, r.width, i*10 );
}
for( int i = 1; i <= vlines; i++ )
{
g.drawLine(i*10, 0, i*10, r.height);
}
//画圆弧
g.setColor(Color.red);
if( filled )
{
g.fillArc(0, 0, r.width-1,r.height-1, startAngle, endAngle);
}
else
{
g.drawArc(0, 0, r.width-1,r.height-1, startAngle, endAngle);
}
//画相线及写角度
g.setColor(Color.black);
g.drawLine(0, r.height/2, r.width, r.height/2);
g.drawLine(r.width/2, 0, r.width/2, r.height);
g.drawLine(0, 0, r.width, r.height);
g.drawLine(0, r.height, r.width, 0);
int sx = 10;
int sy = r.height -30;
g.drawString("S=" + startAngle, sx, sy);
g.drawString("E=" + endAngle, sx, sy + 15);
}
public void redraw(boolean filled, int startAngle, int endAngle)
{
this.filled = filled;
this.startAngle = startAngle;
this.endAngle = endAngle;
repaint();
}
}
class ArcControls extends Panel implements ActionListener
{
TextField start;
TextField end;
Button fill;
Button draw;
ArcCanvas canvas;
public ArcControls(ArcCanvas canvas)
{
this.canvas = canvas;
start = new TextField("0", 4);
add(start);
end = new TextField("45", 4);
add(end);
fill = new Button("填充");
fill.addActionListener(this);
add(fill);
draw = new Button("不填充");
draw.addActionListener(this);
add(draw);
}
public void actionPerformed(ActionEvent e)
{
String label = e.getActionCommand();
canvas.redraw( label.equals("填充"),
Integer.parseInt((start.getText()).trim()),
Integer.parseInt((end.getText()).trim()) );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -