package arcApplet;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
class ArcCanvas extends Canvas
{
int startAngle=0;
int valueOfAngle=45;
boolean filled=false;
/** 组件类的paint()方法 */
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,valueOfAngle);
else
g.drawArc(0,0,r.width-1,r.height-1,startAngle,valueOfAngle);
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(r.width,0,0,r.height);
int sx=10;
int sy=r.height-28;
g.drawString("S="+startAngle,sx,sy);
g.drawString("E="+valueOfAngle,sx,sy+14);
}//paint()方法结束
/** 改变参数后重新画弧 */
public void redraw(boolean filled,int start,int end)
{
this.filled=filled;
this.startAngle=start;
this.valueOfAngle=end;
repaint();
}// redraw()方法结束,该方法调用了repaint()方法,用来在参数被修改后重画图形
}// ArcCanvas类定义结束
/** 控制面板类用于设置或改变参数 */
class ArcControls extends Panel implements ActionListener
{
TextField s;
TextField e;
ArcCanvas canvas;
/** 控制面板类之构造方法,参数为画布 */
public ArcControls(ArcCanvas canvas)
{
Button b=null;
this.canvas=canvas;
add(s=new TextField("0",4));
add(e=new TextField("45",4));
b=new Button("Fill");
b.addActionListener(this);
add(b);
b=new Button("Draw");
b.addActionListener(this);
add(b);
}// ArcControls类构造方法结束
/** 响应按钮事件的处理方法 */
public void actionPerformed(ActionEvent ev)
{
String label=ev.getActionCommand();
canvas.redraw(label.equals("Fill"),Integer.parseInt(s.getText().trim()),Integer.parseInt(e.getText().trim()));
}// actionPerformed()方法结束
}// ArcControls类定义结束
/** Applet类的定义*/
public class ArcApplet extends Applet
{
/** init()方法,在Applet中加入画布和控制面板 */
public void init()
{
setLayout(new BorderLayout());
ArcCanvas p=new ArcCanvas();
add("Center",p);
add("South",new ArcControls(p));
}// init()方法结束
}// ArcApplet类定义结束
用java小应用程序画弧
4星 · 超过85%的资源 需积分: 5 136 浏览量
2008-12-05
19:35:00
上传
评论
收藏 4KB RAR 举报
leavor
- 粉丝: 7
- 资源: 21
最新资源
- 杨辉三角(Pascal's Triangle)是一个在数学中非常著名的数列,它以一种特定的模式排列数字,内容以5种代码实例实现
- yolov5数据集:CT图像肾脏、结石检测(2类别,包含训练集、验证集)
- 电力102规约请求报文实录
- RTL8723 linux+安卓驱动 2020版本
- ISO 26262 道路车辆-功能安全-系统级产品开发
- 数据挖掘期末题 选择填空简答
- EKF在CTRV模型上的建模推导
- 用于:https://laoshifu.blog.csdn.net/article/details/138191428 多层创建
- 电力102规约(电能累计量的传输规约)培训
- 「常用」E9外部流程接口
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈