您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > 南邮Java实验报告1-综合图形界面程序设计
实验报告(2016/2017学年第2学期)课程名称JAVA程序设计实验名称综合图形界面程序设计实验时间2017年6月2日指导单位计算机学院计算机系统与网络教学中心指导教师学生姓名班级学号学院(系)计算机学院专业计算机科学与技术实验报告实验名称综合图形界面程序设计指导教师实验类型上机实验学时2实验时间2017.06.02一、实验目的和要求学习和理解JAVASWING中的容器,部件,布局管理器和部件事件处理方法。通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。二、实验环境(实验设备)1.PC微型计算机系统2.MicrosoftWindows操作系统3.SUNJavaDevelopmentKit开发工具包4.NetBeans开发工具三、实验原理及内容1.实验原理:利用JAVASWING中的容器,部件,布局管理器和部件事件处理方法编写程序。2.实验内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。2实验报告3.实验关键代码:(省略了设计产生的格式、字体、样式等代码,保留主要代码)publicclassNewJFrameextendsjavax.swing.JFrame{privatefinalStrings[]={美元USD,人民币CNY,日元JPY,欧元EUR,英镑GBP,澳元AUD};privatefinalfloatrate[]={1,(float)6.88,(float)111.599,(float)0.892,(float)0.778,(float)1.353};privatedoublesum;//兑换后的金额JButtonbutton;publicNewJFrame(){initComponents();}privatevoidinitComponents(){jPanel1=newjavax.swing.JPanel();jLabel1=newjavax.swing.JLabel();jTextField1=newjavax.swing.JTextField();jTextField2=newjavax.swing.JTextField();jButton1=newjavax.swing.JButton();jButton2=newjavax.swing.JButton();jComboBox1=newjavax.swing.JComboBox();jComboBox2=newjavax.swing.JComboBox();jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());jLabel1.setText(汇率转换);jComboBox1.setModel(newjavax.swing.DefaultComboBoxModel(newString[]{美元USD,人民币CNY,日元JPY,欧元EUR,英镑GBP,澳元AUD}));jTextField1.setFont(newjava.awt.Font(宋体,0,18));//NOI18NjTextField2.setFont(newjava.awt.Font(宋体,0,18));//NOI18NjButton1.setText(转换);jButton1.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton1ActionPerformed(evt);}});3jButton2.setText(清零);jButton2.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton2ActionPerformed(evt);}});jComboBox2.setModel(newjavax.swing.DefaultComboBoxModel(newString[]{美元USD,人民币CNY,日元JPY,欧元EUR,英镑GBP,澳元AUD,}));pack();}//button1“转换”按钮功能的实现privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:JButtonbutton3=(JButton)evt.getSource();java.text.DecimalFormatdf=newjava.text.DecimalFormat(#.000000);Stringtext=jTextField1.getText();Stringsum1;intcbx=jComboBox1.getSelectedIndex();//记录下标intcb1x=jComboBox2.getSelectedIndex();if(button3==jButton1){sum=Float.parseFloat(text);if(sum0){sum1=df.format((double)rate[cb1x]/(double)rate[cbx]*sum);jTextField2.setText(sum1);}elsejTextField2.setText(你输入的金额错误!);}}//button2“清零”按钮功能的实现privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:jTextField1.setText(null);jTextField2.setText(null);4}}4.实验结果:(1)我的汇率转换器主界面:5(2)测试输入结果页面:6实验报告7实验报告四、实验小结(包括问题和解决方法、心得体会、意见与建议等)1.通过本次试验,我大概理解了JAVASWING中的容器,部件,布局管理器和部件事件处理方法,学会了使用JAVASWING来设计简单的java程序。通过编写调试程序,也掌握JAVA图形界面程序设计的基本方法。本实验做了属于自己的第一个Java汇率转换器,收获了很多东西,成就感满满。2.原来上课时候没有认真听讲,导致实验开始做时存在困难,不知从何下手。通过求教同学和老师还有网络资源,找到了大致思路。虽然最终自己实践是还是很多的错误需要调试,但是程序成功运行时的确非常开心。3.此次实验,自己设计界面,总体算比较成功,但是仍有一些小bug使得程序不那么完美,比如:8可以看到,当转换结果小于1时,计算机自动省略了0.778000、0.012124中小数点前面的“0”,由于时间有限,且不影响整体使用效果,就暂时没有思考修改这个问题的解决办法。待有时间时将尽力改好这个问题。4.在设计的时候,不知道怎么不知相对布局,导致程序运行时小窗口的时候比较合适,一旦放大或者缩小窗口时,内容却不会相应变化,无法实现响应式布局。期待后续能够解决这个问题。5.本次实验,设计并不难,毕竟只需要部件拖拽即可实现设计布局。于我而言,难在如何给按钮增加触发事件处理、和如何获取文本框和复选按钮的值并进行运算。(1)获取文本信息:Stringtext=jTextField1.getText();sum=Float.parseFloat(text);//并转换为可运算的数据浮点型格式(2)获取复选按钮信息:intcbx=jComboBox1.getSelectedIndex();//记录下标intcb1x=jComboBox2.getSelectedIndex();(3)“转换”计算过程:if(sum0){sum1=df.format((double)rate[cb1x]/(double)rate[cbx]*sum);jTextField2.setText(sum1);}else9jTextField2.setText(你输入的金额错误!);(4)“清零”功能实现:JTextField1.setText(null);jTextField2.setText(null);五、指导教师评语成绩批阅人日期
本文标题:南邮Java实验报告1-综合图形界面程序设计
链接地址:https://www.777doc.com/doc-7028258 .html