⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arcapplet.java

📁 java的书上例子
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

/** 该Applet小应用程序根据给定的参数画弧或填充弧 
  * 作者:尉哲明
  * 日期:2001年5月 */

/** 定义类在其上画弧 */
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类定义结束

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -