一、 实验目的和要求
学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法。
通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。
实验内容:
设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。
附:程序使用的人民币外汇牌价参考
每100元美元等值买入人民币数:619.72 (2015/5/23 数据)
二、实验代码
package think; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class java_exp_01rmb { public static void main(String[] args) { JFrame frame = new JFrame("人民币转换成美元"); frame.setResizable(false);//固定大小 JPanel panel = new JPanel(); panel.setBackground(new Color(250,250,250)); panel.setLayout(new GridLayout(5,1,10,10)); JLabel text1 = new JLabel("人民币:"); JLabel text2 = new JLabel("美元:"); JTextField rmbInput = new JTextField(""); JTextField dollarOutput = new JTextField(""); JButton bt = new JButton("转换"); frame.setBounds(300, 300, 210, 250); panel.setBounds(0, 0, 200, 200); panel.add(text1); panel.add(rmbInput); panel.add(text2); panel.add(dollarOutput); panel.add(bt); frame.add(panel); frame.setVisible(true); bt.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub double temp; JButton bt = (JButton) e.getSource(); try{ temp = Double.parseDouble(rmbInput.getText()); dollarOutput.setText(""+temp/6.1972); } catch(NumberFormatException n) { dollarOutput.setText("你输入的金额错误!"); } } }); } }
三、界面
四、小结
整体的思路:
* 布局——设置一个swing顶层容器,再设置一个通用容器jpanel,采用gridlayout布局。布局里用五个组件,jpanel和jtextfield和一个jbutton。之后再采用一个监听器监听一下button按钮。
遇到的问题和解决的方法:
* 一开始没有设置布局为GridLayout,直接用label默认的布局。虽然设置了setbounds但是不能按照理想的位置输出。后来百度看例子+看书,采用了GridLayout布局。耗时大概一小时10分钟。
* 在获取textfield的组件里的输入内容的时候,由于gettext的返回值是string,所以需要转换成double,之前没有做过这方面的内容,所以百度了一下看了例子。
* settext中输出的形式需要注意,不可以直接给一个double类型的数据,但是可以连接在字符串之后输出。
* 优化了程序:对输入类型进行了控制,如果输入的不是数字会有异常输出。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-01 04:57:59