本人学号:201421122038 coding.net:https://coding.net/Coopr/GUI-calc-project.git
队友学号:201421122022
一、需求分析(对作业一的增量开发)
1. 对错结果的记录
2 .计时器功能的实现
3 .语言切换功能
二、 程序设计
-
记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
-
有计时功能,能显示用户开始答题后的消耗时间。
-
界面支持中文简体/中文繁体/英语,用户可以选择一种;
三、 代码展示
1.计时器
jl = new JLabel(language[languageMode][4]); jl.setBounds(350, 10, 70, 30); c.add(jl); jtf = new JTextField(); jtf.setBounds(400, 10, 70, 30); jtf.setBackground(Color.white); jtf.setText("0"); jtf.setHorizontalAlignment(JTextField.CENTER); jtf.setEditable(false); c.add(jtf); timer = new Timer(1000, new ActionListener(){ public void actionPerformed(ActionEvent e) { counter++; jtf.setText(counter+""); } }); timer.start();
通过timer计时器类做计时功能,counter保存时间,每秒自加1。
2.中英文切换
private static String[][] language = {{"题目生成界面","计算式题目:","填写答案:","确认答案:","计时器:","正确率:","过去正确记录:"}, {"題木生成界面","計算式題目:","填寫答案:","確認答案","計時器:","正確率:","过去正確记录:"}, {"subject interface","Title:","Answer:","Confirm","timer:","correct:","correct record:"}};
jc.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { //获取下拉列表(语言)的索引 if(e.getStateChange() == ItemEvent.SELECTED){ languageMode = jc.getSelectedIndex(); jf.setTitle(language[languageMode][0]); jb1.setText(language[languageMode][1]); jb2.setText(language[languageMode][2]); jb3.setText(language[languageMode][3]); } } });
预先写好中英文,保存在String中,通过监听器获取下拉列表的索引改变语言。
四 、程序运行截图
五、小结感受
1.关于结对编程,通过共同讨论能过更快的找出解决方案,但由于各种原因一起编程的时间较少。
2.swing用的较少,导致UI界面不够美观。
六 、运用汉堡包式评价你的伙伴
1. 优点: 思维清晰,能想出好的办法去解决问题,注释到位,简洁明了。
2. 缺点: 比较不擅长交流。
3 .希望改进的地方: 编程过程应多交流。
七、 结对过程
1. 需求分析,确认好要写的功能
2. 分配好任务,我主要扩展一下基本功能和第一个功能,队友写2,3个功能。
3 .各自完成自己的功能部分,
4. 互相调试下代码
5. 完成项目的整合
八、psp