njupt Java 实验1

做个汇率转换器,主要是熟悉swing组件,以前没用过swing,不过这玩意学起来快。

有几个注意的地方:1,用户可能随便输入,所以要正则判断一下。

                                     2,浮点数可能末尾几位有问题,所以最后要取3位输出。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class device extends JFrame{
public class alert extends JDialog{
		public alert(){
			setTitle("警告");
			setLayout(null);
			setBounds(400,300,250,200);
			Container container=getContentPane();
			JLabel jl= new JLabel("拜托请输入正确的兑换金额");
		    jl.setBounds(50,50,200,100);
			container.add(jl);
			container.setBackground(Color.white);
		    setVisible(true);
		    }
}
   public device(){
	   setTitle("汇率兑换器");
	   setLayout(null);
	   setBounds(200,200,500,450);//第一个为窗口左上点的横坐标,第二个为窗口左上点的纵坐标,第三个为窗口横向大小,第四个为纵向窗口
	   Container container=getContentPane();
	   JLabel jl= new JLabel("兑换金额(美元)");
	   jl.setBounds(50,50,200, 100);//相对于窗口
	   container.add(jl);
	   JLabel jl2=new JLabel("兑换金额(人民币)");
	   jl2.setBounds(50,150,200,100);
	   container.add(jl2);
	   JTextField jt=new JTextField("");
	   jt.setBounds(175,70,200,50);
	   container.add(jt);
	   JTextField jt2=new JTextField("");
	   jt2.setBounds(175,175,200,50);
	   container.add(jt2);
	   JButton jb=new JButton("重置");
	   jb.setBounds(100,250,100,50);
	   container.add(jb);
	   JButton jb2=new JButton("兑换");
	   jb2.setBounds(250,250,100,50);
	   container.add(jb2);
	   container.setBackground(Color.white);
	   setVisible(true);
	   jb.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stu9b
			  jt.setText("");
			  jt2.setText("");
			}
		});
	   jb2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {//要判断输入是否合法
				// TODO Auto-generated method stu9b
				String s= jt.getText();
				if ((s.matches("\\d+"))||(s.matches("\\d+\\.\\d+"))){
				double n=Double.parseDouble(s);
				n=n*6.4750;
				String ss=new java.text.DecimalFormat("#.000").format(n);//防止出现浮点数异常(比如1.000005)
				jt2.setText(ss);
			}
				else {
					new alert();
					jt.setText("");
				     }
			}
		});
}
      public static void main(String args[]){
		 new device();
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值