做个汇率转换器,主要是熟悉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();
}
}