图形界面(GUI)程序设计一、课题内容和要求内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。要求:学习和理解JAVASWING中的容器,部件,布局管理器和部件事件处理方法。通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。二、设计思路分析classRMBtoDollar:主类,调用主函数。classchange:设置界面,并通过界面上的事件触发实现汇率转换。三、概要设计publicclassRMBtoDollar{publicstaticvoidmain(String[]args);}classchangeextendsJFrameimplementsMouseListener{JLabell1,l2,l3;JTextFieldtf1,tf2;JButtonb;doubleRMB,Dollar;publicchange();publicvoidmousePressed(MouseEvente);publicvoidmouseClicked(MouseEvente);publicvoidmouseEntered(MouseEvente);publicvoidmouseExited(MouseEvente);publicvoidmouseReleaseed(MouseEvente);//鼠标释放时进行转换}四、详细设计importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassRMBtoDollar{publicstaticvoidmain(String[]args){newchange();}}classchangeextendsJFrameimplementsMouseListener{JLabell1,l2,l3;JTextFieldtf1,tf2;JButtonb;doubleRMB,Dollar;publicchange(){//添加组件和设置布局l1=newJLabel(人民币/元:);l2=newJLabel(美元/dollar:);l3=newJLabel((汇率:6.17));tf1=newJTextField(12);tf2=newJTextField(12);b=newJButton(转换);add(l1);add(tf1);add(l2);add(tf2);add(l3);add(b);setLayout(newFlowLayout(FlowLayout.CENTER));setTitle(人民币转换为美元);setBounds(300,300,300,150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);b.addMouseListener(this);//鼠标事件监视器}publicvoidmousePressed(MouseEvente){if(tf2.getText()!=null){//tf2test默认初始设为空tf2.setText();}}publicvoidmouseClicked(MouseEvente){}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseReleased(MouseEvente){if(tf1.getText()!=null){//检查tf1test是否为空try{//取异常RMB=Double.parseDouble(tf1.getText());//字符转为double型Dollar=RMB/6.17;//转换tf2.setText(+Dollar);//显示}catch(Exceptionex){tf1.setText();//如果输入不是数字,设为空}}}}五、测试数据及其结果分析1正常输入:2输入字符串不能转为double型时清空输入框:3结果:输出正常。六、调试过程中的问题一开始没有对输入流输入的字符串转为double型数据,导致不能转换,采用转为double型并抛出异常后解决了该问题。七、程序设计总结1、通过该实验掌握了JAVA图形界面程序设计的方法。2、熟悉了JAVASWING中的容器、组件、布局以及事件监视器和事件接口的使用。3、在逐步地优化和调试中实现了一个较实用的界面。