北 京 林 业 大 学
2013 学年— 2014 学年第 2学期 Java程序设计基础实验
报告书
专 业: 电子 班 级: 11-2 姓 名: 王云飞 学 号: 101114110 实验地点: 计算机中心 任课教师: 黄儒乐 实验题目:图形用户界面编程
实验环境: Windows2000/XP;局域网 实验要求:
1. 对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。 2. 把实验中出现的问题以及最后解决的情况反馈到实验报告中。 3. 程序作业的源代码要求反馈到实验报告中。
实验内容:
设计一个考试分数分布统计程序,要求该程序: 1) 提供输入界面,可输入考生姓名和分数;
2) 单击输入按钮,在登记考生姓名和分数的同时,立即绘制当前人数的分数分布统计饼图
(分为优秀、良好、中等、不及格)精品文档收集整理汇总文档来源网络及个人整理,勿用作商业用途 3) 参考界面如下:
? 初始执行时,各个分数比例均匀分布。
1 / 7
? 然后逐个输入姓名和分数,点击输入后,左面显示姓名和分数,右面饼图同步更新。
实验目的:
掌握图形用户界面中常用类的使用。
实现方法、实验结果及结论分析等:
实验源代码:
import java.awt.event.*; import java.awt.*; import javax.swing.*;
2 / 7
public class Score extends JFrame{
JPanel inputPanel=new JPanel();
ShanXingTu figure =new ShanXingTu(); JLabel labelName=new JLabel(\姓名:\ JLabel labelScore=new JLabel(\分数:\
JLabel labelRed = new JLabel(\不及格(60以下)\ JLabel labelYellow = new JLabel(\优秀(100-90)\ JLabel labelGreen = new JLabel(\良好(89-75)\ JLabel labelBlue = new JLabel(\中等(74-60)\ JTextField inputName=new JTextField(10); JTextField inputScore=new JTextField(10); JTextArea textArea=new JTextArea(20,16); JButton inputButton=new JButton(\输入\
JScrollPane scrollPane = new JScrollPane(textArea);精品文档收集整理汇总文档来源网络及个人整理,勿用作商业用途 int excellent = 0,good = 0,pass = 0,fail = 0;
public Score(){
setSize(400,300); setTitle(\分数统计\
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true);
inputPanel.add(labelName); inputPanel.add(inputName); inputPanel.add(labelScore); inputPanel.add(inputScore); inputPanel.add(inputButton);
inputButton.addActionListener(new ActionListener(){精品文档收集整理汇总文档来源网络及个人整理,勿用作商业用途 public void actionPerformed(ActionEvent event){
inputData(inputName.getText(),Double.parseDouble(inputScore.getText()));精品文档收集整理汇总文档来源网络及个人整理,勿用作商业用途 } });
labelYellow.setForeground(Color.YELLOW); labelGreen.setForeground(Color.GREEN); labelBlue.setForeground(Color.BLUE); labelRed.setForeground(Color.RED); figure.add(labelYellow); figure.add(labelGreen); figure.add(labelBlue);
3 / 7
figure.add(labelRed);
figure.setBackground(Color.GRAY); add(inputPanel,\ add(scrollPane,\ add(figure,\
textArea.append(\姓名\\t分数\\n\ }
void inputData(String name,double score){
textArea.append(name+\ \ if(score>=90){ excellent++; }
else if(score>=75){ good++; }
else if(score>=60){ pass++; } else{
fail++; }
int sum = excellent + good + pass + fail; figure.a=360 * excellent / sum; figure.b=360 * good / sum; figure.c=360 * pass / sum; figure.d=360 * fail / sum; figure.repaint(); }
public static void main(String args[]){ JFrame score = new Score(); } }
class ShanXingTu extends JPanel{
public void paintComponent(Graphics g){ super.paintComponent(g);
4 / 7
g.setColor(Color.YELLOW); g.fillArc (x,y,len,len,0,a); g.setColor(Color.GREEN); g.fillArc(x,y,len,len,a,b); g.setColor(Color.BLUE); g.fillArc(x,y,len,len,a + b,c); g.setColor(Color.RED);
g.fillArc(x,y,len,len,a + b + c,d); }
int a=90,b=90,c=90,d=90;int x=20;int y=50;int len=160;精品文档收集整理汇总文档来源网络及个人整理,勿用作商业用途 }
实验结果:
5 / 7
java实验报告(实验六)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)