小计算器
编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。
设计四个按钮,分别命名为“加”、“差”、“积、”、“除”;
另外,窗口中还有三个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。要求处理NumberFormatException异常。
/**
* Counter.java
* @author:王超
* 2016年11月22日
* com.wangchao.shangji.exercise.第七次试验.Counter
* Copyright (c) 2007, 2016 Infopower corporation All Rights Reserved.
*/
package com.wangchao.shangji.exercise.第七次试验;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
/**
*
* <p>
* 描述该类情况 {@link 代表跟谁有关系}
* </p>
*
* @author 王超
* @since 1.0
* @date 2016年11月22日 下午6:13:26
* @see 新建|修改|放弃
* @see com.wangchao.shangji.exercise.第七次试验.Counter.计算器
*/
public class Counter extends JFrame
{
/***/
private static final long serialVersionUID = 1L;
public static void main(String[] args)
{
Counter counter = new Counter();
counter.setVisible(true);
}
JButton add = new JButton("加");
JButton cut = new JButton("减");
JButton division = new JButton("除");
JButton take = new JButton("乘");
JTextField text1 = new JTextField("", 7);
JTextField text2 = new JTextField("", 7);
JTextField text3 = new JTextField("", 7);
public Counter()
{
setTitle("计算器");
// 设置窗体大小
setSize(300, 300);
// 设置窗口位置
setLocation(400, 400);
// 关闭窗口的操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置布局
setLayout(new FlowLayout());
// 输入框1
add(this.text1);
// 输入框2
add(this.text2);
// 结果框3
add(this.text3);
// 按钮 加法
add(this.add);
// 按钮 减法
add(this.cut);
// 按钮 乘法
add(this.take);
// 按钮 除法
add(this.division);
// 加法的监听事件
this.add.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String strText1 = getText1();
Integer te1 = new Integer(strText1);
String strText2 = getText2();
Integer te2 = new Integer(strText2);
Integer te3 = te1 + te2;
setText3(te3.toString());
}
});
// 减法的监听事件
this.cut.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String strText1 = getText1();
Integer te1 = new Integer(strText1);
String strText2 = getText2();
Integer te2 = new Integer(strText2);
Integer te3 = te1 - te2;
setText3(te3.toString());
}
});
// 乘法的监听事件
this.take.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String strText1 = getText1();
Integer te1 = new Integer(strText1);
String strText2 = getText2();
Integer te2 = new Integer(strText2);
Integer te3 = te1 * te2;
setText3(te3.toString());
}
});
// 除法的监听事件
this.division.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String strText1 = getText1();
Integer te1 = new Integer(strText1);
String strText2 = getText2();
Integer te2 = new Integer(strText2);
Double te3 = te1 / te2.doubleValue();
setText3(te3.toString());
}
});
}
// 获取text1的值
public String getText1()
{
if (this.text1.getText() == null)
{
throw new NumberFormatException();
}
else
{
return this.text1.getText();
}
}
// 获取text2的值
public String getText2()
{
if (this.text2.getText() == null)
{
throw new NumberFormatException();
}
else
{
return this.text2.getText();
}
}
// 设置text3的值
public void setText3(String t3)
{
this.text3.setText(t3);
}
}