效果
题目
**15.14(显示一个条形图)编写程序,使用条形图显示作业、平时测验、期中考试和期末考试占总成绩的百分比。假设作业占20%用红色显示,平时测验10%用蓝色显示,期中考试占30%用绿色显示,期末考试占40%用橙色显示。
代码
package Test;
import javax.swing.*;
import java.awt.*;
public class Exercise15_14 extends JFrame {
public Exercise15_14(){
add(new drawPercentage());
}
public static void main(String[] args) {
Exercise15_14 frame=new Exercise15_14();
frame.setTitle("Exercise16_9");
frame.setSize(400,400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class drawPercentage extends JPanel{
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//绘制一个圆形
g.drawOval(100,100,200,200);
//设置颜色
g.setColor(Color.red);
//选择20%作为作业
g.fillArc(100,100,2*100,2*100,0,72);
//绘制字符串
g.drawString("平时作业-20%",310,180);
//设置颜色
g.setColor(Color.blue);
//选择20%作为作业
g.fillArc(100,100,2*100,2*100,72,36);
//绘制字符串
g.drawString("平时测验-10%",130,80);
//设置颜色
g.setColor(Color.green);
//选择20%作为作业
g.fillArc(100,100,2*100,2*100,108,108);
//绘制字符串
g.drawString("期中考试-30%",50,180);
g.setColor(Color.orange);
//选择20%作为作业
g.fillArc(100,100,2*100,2*100,216,144);
//绘制字符串
g.drawString("期末考试-40%",270,300);
}
}
思路解析
g.fillArc(100,100,2*100,2*100,0,72);
意思是绘制一条填充颜色的弧线,从0°开始,向左边绘制72°。
g.fillArc(100,100,2*100,2*100,72,36);
意思是绘制一条填充颜色的弧线,从72°开始,向左边绘制36°。
以此类推