当前位置:文档之家› java图形界面之电子算盘

java图形界面之电子算盘

Java图形用户界面院系: 计算机系姓名:后人好乘凉一实验目的●使学生综合运用图形用户界面设计的概念;●使学生熟悉使用中间面板,组成层次复杂的GUI界面;●使学生掌握使用事件驱动编程;二实验环境及实验准备●所需硬件环境为微机;●所需软件环境为JDK、Eclipse;●掌握Java下界面容器与基本组件的基本知识与应用;●掌握Java下事件处理模型;●掌握Java下图形绘制的方法;三实验内容(一)、设计实现电子算盘,并完成测试;[题目描述及要求] 给小朋友设计一个电子算盘。

要求绘制电子算盘界面,设计并实现打珠算过程(界面参考如下图示)。

电子算盘参考界面示意程序源代码:package calculator;import java、awt、Color; //导入import java、awt、GridLayout;import java、awt、Container;import javax、swing、JLabel;import javax、swing、JButton;import javax、swing、ImageIcon;import javax、swing、JPanel;import javax、swing、JFrame;import javax、swing、JTextField;import java、awt、event、*;public class Calculator extends JFrame{public int totalNumber;public int t = 0;public boolean[] isAddFive = new boolean[5];public int number[] = new int[5];public ImageIcon picture = new ImageIcon(System、getProperty("user、dir") + "/算珠、jpg" ); //添加图片public ImageIcon picture1= new ImageIcon(System、getProperty("user、dir") + "/算珠1、jpg" );Container con = getContentPane();JPanel j1 = new JPanel();JPanel j2 = new JPanel();JPanel j3 = new JPanel();JPanel time=new JPanel();JLabel q = new JLabel();JLabel nA = new JLabel();JLabel Time=new JLabel(new ImageIcon("、/时钟、jpg")); //添加时钟标签的图片JTextField a = new JTextField();JButton Buttons_1[][] = new JButton[2][5];JButton Buttons_2[][] = new JButton[5][5];GridLayout gl_1 = new GridLayout(2,5);GridLayout gl_2 = new GridLayout(5,5);GridLayout gl_3 =new GridLayout();public Calculator(){super("电子算盘");setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);setBounds(100,100,600,400);setVisible(true);setLayout(null);AbacusPanel();}public void AbacusPanel() // 算盘面板{j1、setLayout(null);j1、setBounds(15,60,400,300);j1、setBackground(Color、blue);con、add(j1);JPanel j2 = new JPanel();j2、setLayout(gl_1);j2、setBounds(10, 10, 380, 80);j1、add(j2);JPanel j3 = new JPanel();j3、setLayout(gl_2);j3、setBounds(10, 100, 380, 190);j1、add(j3);time、setLayout(gl_3);time、setBounds(430,220,130,130); //时钟面板大小time、setBackground(Color、white); //时钟面板颜色time、add(Time);//添加时钟标签con、add(time);for(int i = 0;i < 2;i++){for(int j = 0;j < 5;j++){Buttons_1[i][j] = new JButton("");Buttons_1[i][j]、addActionListener(new ClickIt());Buttons_1[i][j]、setBorderPainted(false);Buttons_1[i][j]、setContentAreaFilled(false);if(i != 1)Buttons_1[i][j]、setIcon(picture1);j2、add(Buttons_1[i][j]);}}for(int i = 0;i < 5;i++){for(int j = 0;j < 5;j++){Buttons_2[i][j] = new JButton("");Buttons_2[i][j]、addActionListener(new ClickIt());Buttons_2[i][j]、setBorderPainted(false);Buttons_2[i][j]、setContentAreaFilled(false);if(i != 0)Buttons_2[i][j]、setIcon(picture);j3、add(Buttons_2[i][j]);}}}private void addTotalNumber() // 计算算盘的结果{for(int j = 0;j < 5;j++){if(isAddFive[j] == true && number[j] <5)number[j] = number[j] + 5;elseif(isAddFive[j] == false && number[j] >= 5)number[j] = number[j] - 5;}totalNumber = 0;for(int j = 0;j < 5;j++){totalNumber = totalNumber + number[j] * (int)Math、pow(10,(double)j);}System、out、println(totalNumber);}private void DrawCol(int j) // 绘制j列算珠{for(int i = 1; i <=4;i++){B uttons_2[i][j]、setIcon(picture);}}class ClickIt implements ActionListener // 单击事件监听器 {public void actionPerformed(ActionEvent e){for(int i = 0;i < 2;i++)for(int j = 0;j < 5;j++)if(e、getSource() == Buttons_1[i][j]){if(i == 1){isAddFive[5-j-1] = false;Buttons_1[0][j]、setIcon(picture1);Buttons_1[1][j]、setIcon(null);}elseif(i == 0){isAddFive[5-j-1] = true;Buttons_1[1][j]、setIcon(picture1);Buttons_1[0][j]、setIcon(null); }}for(int i = 0;i <= 4;i++) // 点击后动作for(int j = 0;j < 5;j++)if(e、getSource() == Buttons_2[i][j]){number[5-j-1] = i;DrawCol(j);Buttons_2[0][j]、setIcon(picture);Buttons_2[i][j]、setIcon(null);}addTotalNumber();}}public static void main(String[] args) {// TODO Auto-generated method stubCalculator f = new Calculator();}}运行结果截图程序流程图(二)、以(一)中的电子算盘为基础,设计并实现珠算测试器,并完成测试。

[题目描述及要求]给小朋友设计一个珠算测试器,要求能够完成珠算加减法的测试。

具体的要求功能如下: (1) 用户启动测试,输入用户名后系统随机生成特定数目的加减法测试题;(2) 要求测试使用表盘式或数字时秒表进行界面计时显示(参考如上图示); (3) ,要求用户使用电子算盘完成珠算过程,当按下确认键时,将珠 算结果与正确答案比对,并在界面上显示总题数、已答题数与已做对题数;(4) 当测试完成,界面显示本次测试情况(包括用户名、测试题目及答题明细、对错情 况、测试用时与测试成绩)程序源代码package testcal; import java 、awt Color; //导入import java 、awt Font;import java 、awt GridLayout;import java 、awt Container;import javax 、swing 、JLabel; import javax 、swing 、JButton;import javax 、swing 、ImageIcon;import javax 、swing 、JOptionPane; 开 始添加框架输出电子算盘结 束添加时钟Label,并添加图片 添加单击事件监听器及单击后动作 添加面板j1、j2、j3实现算盘分块 按面板j2、j3上划分好的网格结构添加按钮及图片。

相关主题