您的位置:首页 > 编程语言 > Java开发

南邮JAVA实验1--综合图形界面程序设计

2015-11-15 19:28 519 查看
实验目的和要求:学习和理解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());
this.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);
}
});

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: