实验目的和要求:学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法。通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。
?
实验内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。
?
附:程序使用的人民币外汇牌价参考
每100元美元等值买入人民币数:619.72 (2015/5/23 数据)
下面这个是传统的,并没有使用JAVA的Swing拓展包
代码:
//package cn.zhang.experiment_1;import java.awt.*;import java.awt.event.*;import java.math.BigDecimal;public class NotSwing { public static void main(String[] args){ new MyFrame(“汇率转换”).Run(); }}class MyFrame extends Frame{private static final long serialVersionUID = 1L;TextField num1,num2;public MyFrame(String s) {super(s);}@SuppressWarnings(“deprecation”)public void Run(){num1=new TextField(15);num2=new TextField(15);num2.enable(false);//设置美元文本框只读属性,横线表示这个方法已被废弃,SUN公司不推荐用,但还是可以用Label lbplus1=new Label(“人民币(元)”);//设置标签Label lbplus2=new Label(“美元($)”);//设置标签Button button=new Button(“汇率转换为”);button.addActionListener(new Listener());香港vpsthis.addWindowListener(new MywindowCloseing() );setLayout(new FlowLayout());setBackground(Color.CYAN);//背景颜色setSize(200,200);setLocation(400,300);add(lbplus1);add(num1);add(button);add(num2);add(lbplus2);setVisible(true);}/* 设置监听,按下按钮进行转换 */public class Listener implements ActionListener{public void actionPerformed(ActionEvent e) {double n1 = Double.parseDouble(num1.getText());double ans=(double)(n1*100.00/619.72);//保留两位数 BigDecimal b = new BigDecimal(ans);double ans2 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();num2.setText(“” + ans2);}}/* 设置监听,按下按钮关闭窗口*/class MywindowCloseing extends WindowAdapter{public void windowClosing(WindowEvent e) {setVisible(false);System.exit(0);}}}
下面用了swing
代码:
package cn.zhang.experiment_1;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.math.BigDecimal;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;/** * 使用Swing; * @author zyq_zhang * */public class UseSwing {public static void main(String[] args){new MyFrame2(“汇率转换”).Run();}}class MyFrame2 extends Frame{private static final long serialVersionUID = 1L;public MyFrame2(String s) {super(s);}public void Run(){JPanel jp=new JPanel();JLabel label1=new JLabel(“人民币”);JTextField rmb=new JTextField(10);JButton button=new JButton(“汇率转换为”);JTextField my=new JTextField(10);my.setEnabled(false);//设置美元文本框只读属性JLabel label2=new JLabel(“美元”);this.setBackground(Color.GRAY);this.add(jp);jp.setLayout(new FlowLayout());jp.add(label1);jp.add(rmb);jp.add(button);jp.add(my);jp.add(label2);button.setActionCommand(“rmb”); this.setSize(300, 300);this.setLocation(500, 300);this.setVisible(true);//事件监听,关闭窗口this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e) {System.exit(0);}});//事件监听,汇率转换button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String s1 = rmb.getText(); double rmbnumber = Double.parseDouble(s1); double mynumber = rmbnumber * 100.00 / 619.72; BigDecimal b = new BigDecimal(mynumber); double ans = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); String s2 = String.valueOf(ans); my.setText(s2);}});}}
14996507