Java之使用Graphics+Canvas制作饼状图

本文介绍了如何在Java中使用Graphics和Canvas组件创建饼状图。首先,需要导入java.awt.*和javax.swing.JFrame库。接着,创建一个JFrame的子类并重写构造方法,再建立Canvas的子类并同样重写构造方法。Canvas对象通过继承Component的paint()方法,利用Graphics抽象类进行绘制。最后展示完整代码及运行效果。

使用Graphics+Canvas制作饼状图

事先声明:博主正在学习Java,故水平有限,文中若有疏漏或错误,恳请同行批评指正!

1、导入java.awt.*和javax.swing.JFrame

import java.awt.*;

import javax.swing.JFrame;

2、构建一个JFrame的子类,并重写构造方法

public class PieChart extends JFrame{
	
	PieChart(){
		setSize(400, 400);/*大小*/
		setTitle("Corlor Pie Chart");/*设置标题*/
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);/*窗体可见*/
		myCanvas mc = new myCanvas();/*实例化一个画布对象*/
		add(mc);/*将实例化的画布对象添加到窗体中*/
	}
	
	public static void main(String[] args) {
		new PieChart();
	}
}

3、构建Canvas子类,并重写构造方法

上述在窗体中加入了画布对象,故需要构建一个Canvas子类,并重写构造方法。(个人喜欢这种方式,通过Canvas myCanvas = new Canvas()来实例化画布对象myCanvas也是可以的。)

class myCanvas extends Canvas{

	myCanvas(){
		setSize(400, 400);
	}
	
	public void paint(Graphics e){
		e.setColor(Color.green);/*设置画笔颜色 通过setColor(Color.color)方法设置*/
		e.fillArc(100, 100, 200, 200, 30, 60);
		e.setColor(new Color(0, 210, 255));/*通过构造方法new Color(red, green, blue)构造方法设置画笔颜色*/
		e.fillArc(100, 100, 200, 200, 90, 120);
		e.setColor(Color.red);
		e.fillArc(100, 100, 200, 200, 210, 80);
		e.setColor(Color.yellow);
		e.fillArc(100, 100, 200, 200, 290, 100);
		e.setColor(Color.black);
		e.drawString("全民最受喜爱的阅读APP调查", 120, 40);
		e.drawString("33.3%", 140, 180);
		e.drawString("16.6%", 220, 150);
		e.drawString("22.2%", 165, 260);
		e.drawString("22.2%", 240, 215);
		e.drawString("起点中文网", 70, 115);
		e.drawString("潇湘书院", 240, 95);
		e.drawString("小说阅读网", 120, 320);
		e.drawString("红袖添香", 310, 210);
	}
}

需要说明的是,Canvas继承了Component类的paint()方法,paint()方法的参数是抽象类Graphics对象。主类中的main()方法会自行调用paint()方法,故无需显性调用

4、完整代码

import java.awt.*;

import javax.swing.JFrame;

class myCanvas extends Canvas{
	
	myCanvas(){
		setSize(400, 400);
	}
	
	public void paint(Graphics e){
		e.setColor(Color.green);/*设置画笔颜色 通过setColor(Color.color)方法设置*/
		e.fillArc(100, 100, 200, 200, 30, 60);
		e.setColor(new Color(0, 210, 255));/*通过构造方法new Color(red, green, blue)构造方法设置画笔颜色*/
		e.fillArc(100, 100, 200, 200, 90, 120);
		e.setColor(Color.red);
		e.fillArc(100, 100, 200, 200, 210, 80);
		e.setColor(Color.yellow);
		e.fillArc(100, 100, 200, 200, 290, 100);
		e.setColor(Color.black);
		e.drawString("全民最受喜爱的阅读APP调查", 120, 40);
		e.drawString("33.3%", 140, 180);
		e.drawString("16.6%", 220, 150);
		e.drawString("22.2%", 165, 260);
		e.drawString("22.2%", 240, 215);
		e.drawString("起点中文网", 70, 115);
		e.drawString("潇湘书院", 240, 95);
		e.drawString("小说阅读网", 120, 320);
		e.drawString("红袖添香", 310, 210);
	}
}

public class PieChart extends JFrame{
	
	PieChart(){
		setSize(400, 400);
		setTitle("Corlor Pie Chart");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
		myCanvas mc = new myCanvas();
		add(mc);
	}
	
	public static void main(String[] args) {
		new PieChart();
	}
}

5、运行结果

CSDN——眷白的Java代码(使用Graphics+Canvas制作饼状图)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值