设计一个简单计算器,如下图1所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×,÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。
😂😂😂哈哈哈,时隔多天,我发现很多同学已经看到我博客了,那这次我就不给这个程序加入异常处理了吧。对于代码,同学们可以研究研究,这次的程序就不给完整的了😂
package 实验七;
/**
* 简易的计算机
* 没加入了异常数据处理
*/
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
public class Calculator extends JFrame{
JPanel jp1,jp2,jp3,jp4,jp5;
JLabel jl1;
JButton jb1,jb2,jb3,jb4,jb5,jb6;
JTextField jtf1,jtf2,jtf3;
static JDialog d;//异常时弹出的窗口
public static void main(String[] args) {
Calculator c=new Calculator();
}
Calculator()
{
jl1=new JLabel("请输入两个计算数据");//标签
jtf1=new JTextField(15);//文本框
jtf2=new JTextField(15);//文本框
//设置文本框高和宽
//加减乘除按钮
jb1=new JButton("+");
jb2=new JButton("-");
jb3=new JButton("*");
jb4=new JButton("/");
//添加事件处理
jb1.addActionListener(new addtion());
jb2.addActionListener(new sub());
jb3.addActionListener(new multiplication());
jb4.addActionListener(new division());
jtf3=new JTextField(15);//文本框
jb5=new JButton("清除");//按钮清除
jb6=new JButton("退出");//按钮退出
//添加事件处理
jb5.addActionListener(new clear());
jb6.addActionListener(new out());
//加入Panel
//标签
jp1=new JPanel();
jp1.add(jl1);
//文本框
jp2=new JPanel();
jp2.add(jtf1);
jp2.add(jtf2);
//加减乘除四个按钮
jp3=new JPanel();
jp3.add(jb1);
jp3.add(jb2);
jp3.add(jb3);
jp3.add(jb4);
//输出的文本框
jp4=new JPanel();
jp4.add(jtf3);
//清楚和退出按钮
jp5=new JPanel();
jp5.add(jb5);
jp5.add(jb6);
//加入窗口中
this.setLayout(new GridLayout(5,1,30,30));
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.add(jp5);
//属性
this.setTitle("简易计算器");
this.setSize(450,400);//窗口大小
this.setResizable(false);//禁止窗口大小改变
this.setLocationRelativeTo(null);//设置窗口位置位于屏幕的中间
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
class addtion implements ActionListener//加法的按钮的事件
{
@Override
public void actionPerformed(ActionEvent e){
double a=0,b=0;
a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
jtf3.setText(String.valueOf(a+b));//文本框输出结果
}
}
class sub implements ActionListener//减法的按钮的事件
{
@Override
public void actionPerformed(ActionEvent e){
double a=0,b=0;
a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
jtf3.setText(String.valueOf(a-b));//文本框输出结果
}
}
class multiplication implements ActionListener//乘法的按钮的事件
{
@Override
public void actionPerformed(ActionEvent e){
double a=0,b=0;
a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
jtf3.setText(String.valueOf(a*b));//文本框输出结果
}
}
class division implements ActionListener//除法的按钮的事件
{
@Override
public void actionPerformed(ActionEvent e){
double a,b;
a=Double.valueOf(jtf1.getText());//获取第一个文本的内容
b=Double.valueOf(jtf2.getText());//获取第二个文本的内容
jtf3.setText(String.valueOf(a/b));//文本框输出结果
//判断除数是否为0
if(!jtf3.getText().isEmpty())//判断第三个文本是否为空
if(Double.valueOf(jtf3.getText()).isInfinite())//判断第三个文本是否为无穷大
{
//创建窗口,显示输入错误
JFrame j=new JFrame();
d=new JDialog(j,"提示");
JLabel jb=new JLabel("除数不能为零,请关闭本窗口重新输入");
d.add(jb);
d.setSize(210,100);
d.setLocationRelativeTo(null);//窗口在屏幕中间
d.setVisible(true);
}
}
}
class clear implements ActionListener//清楚的按钮的事件
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jtf1.setText("");
jtf2.setText("");
jtf3.setText("");
}
}
class out implements ActionListener//退出的按钮的事件
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);//正常退出程序,结束虚拟机里面的内容
}
}
}
- 😃联系交流QQ:2283093518