📄 counter.java
字号:
/*
我的简易计算器用法介绍:
能算正实数的加.减.乘.除及倒数.开方的应用
当计算X/0时显示除数为0
当求0的倒数时显示0没有倒数
当关闭窗口时弹出感谢对话框
*/
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
import javax.swing.event.*;
public class Counter extends JFrame
{
GridLayout gl1,gl2; //布局
Panel p0,p1;//面板
JTextField tf1;//文本区
JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19; //按钮
StringBuffer str;//缓冲区
double x,y;//两个操作数
int i;//用来分操作符
public Counter()
{
super("刘青的简易计算器");
gl1=new GridLayout(1,4,10,0);
gl2=new GridLayout(5,4,10,15);
tf1=new JTextField(27);
tf1.setHorizontalAlignment(JTextField.RIGHT);//把文本放左面了
tf1.setEnabled(false); //文本不可以写
tf1.setText("0");
b16=new JButton("Del"); //按钮上显示
b16.setToolTipText("删除");//鼠标指向时显示
b16.setForeground(Color.red);//字体颜色 以下同样
b16.addActionListener(new Bt());
b17=new JButton("CE");
b17.setToolTipText("清空");
b17.setForeground(Color.red);
b17.addActionListener(new Bt());
b18=new JButton("1/X");
b18.setToolTipText("倒数");
b18.setForeground(Color.red);
b18.addActionListener(new Bt());
b19=new JButton("sqrt");
b19.setToolTipText("开平方");
b19.setForeground(Color.red);
b19.addActionListener(new Bt());
b7=new JButton("7");
b7.setForeground(Color.blue);
b7.addActionListener(new Bt());
b8=new JButton("8");
b8.setForeground(Color.blue);
b8.addActionListener(new Bt());
b9=new JButton("9");
b9.setForeground(Color.blue);
b9.addActionListener(new Bt());
b10=new JButton("/");
b10.setToolTipText("除以");
b10.setForeground(Color.red);
b10.addActionListener(new Bt());
b4=new JButton("4");
b4.setForeground(Color.blue);
b4.addActionListener(new Bt());
b5=new JButton("5");
b5.setForeground(Color.blue);
b5.addActionListener(new Bt());
b6=new JButton("6");
b6.setForeground(Color.blue);
b6.addActionListener(new Bt());
b11=new JButton("*");
b11.setToolTipText("乘以");
b11.setForeground(Color.red);
b11.addActionListener(new Bt());
b1=new JButton("1");
b1.setForeground(Color.blue);
b1.addActionListener(new Bt());
b2=new JButton("2");
b2.setForeground(Color.blue);
b2.addActionListener(new Bt());
b3=new JButton("3");
b3.setForeground(Color.blue);
b3.addActionListener(new Bt());
b12=new JButton("-");
b12.setToolTipText("减去");
b12.setForeground(Color.red);
b12.addActionListener(new Bt());
b0=new JButton("0");
b0.setForeground(Color.blue);
b0.addActionListener(new Bt());
b13=new JButton(".");
b13.setToolTipText("添加小数点");
b13.setForeground(Color.blue);
b13.addActionListener(new Bt());
b14=new JButton("+");
b14.setToolTipText("加上");
b14.setForeground(Color.red);
b14.addActionListener(new Bt());
b15=new JButton("=");
b15.setToolTipText("求结果");
b15.setForeground(Color.red);
b15.addActionListener(new Bt());
p0=new Panel();
p1=new Panel();
str=new StringBuffer();
p0.add(tf1); //添加文本及按钮
p0.setBounds(10,25,300,40);
p1.setLayout(gl2);
p1.add(b16);
p1.add(b17);
p1.add(b18);
p1.add(b19);
p1.add(b7);
p1.add(b8);
p1.add(b9);
p1.add(b10);
p1.add(b4);
p1.add(b5);
p1.add(b6);
p1.add(b11);
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(b12);
p1.add(b0);
p1.add(b13);
p1.add(b14);
p1.add(b15);
p1.setBounds(10,70,300,150);
setLayout(null);
add(p0);
add(p1);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e1)//关闭时会怎样
{
JOptionPane.showMessageDialog(null,"谢谢您的使用!期待您的下次使用!~0~","THANKS",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
});
setBackground(Color.pink);
setBounds(100,100,320,280);
setVisible(true);
}
class Bt implements ActionListener //开始设监听器
{
public void actionPerformed(ActionEvent e2)
{
if(e2.getSource()==b17)//清零
{
tf1.setText("0");
str.setLength(0);
}
else if(e2.getSource()==b14)//加号
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
i=0;
}
else if(e2.getSource()==b12)//减号
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
i=1;
}
else if(e2.getSource()==b11)//乘号
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
i=2;
}
else if(e2.getSource()==b10)//除号
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
i=3;
y=0d;
}
else if(e2.getSource()==b15)//等号
{
str.setLength(0);
if(i==0) tf1.setText(""+(x+y));
else if(i==1) tf1.setText(""+(x-y));
else if(i==2) tf1.setText(""+(x*y));
else if(i==3){
if(y==0) tf1.setText("除数为0");
else tf1.setText(""+(x/y));
}
}
else if(e2.getSource()==b13)//小数点
{
if(tf1.getText().trim().indexOf('.')!=-1)
{
}
else
{
if(tf1.getText().trim().equals("0"))
{
str.setLength(0);
tf1.setText((str.append("0"+e2.getActionCommand())).toString());
}
else if(tf1.getText().trim().equals(""))
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
}
}
y=0d;
}
else
{
if(e2.getSource()==b0)//0按钮
{
if(tf1.getText().trim().equals("0"))
{ }
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
else if(e2.getSource()==b16)//退格
{
if(!tf1.getText().trim().equals("0"))
{
if(str.length()!=1)
{
tf1.setText(str.delete(str.length()-1,str.length()).toString());
}
else
{
tf1.setText("0");
str.setLength(0);
}
}
y=Double.parseDouble(tf1.getText().trim());
}
else if(e2.getSource()==b19)//开方键
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText(""+Math.sqrt(x));
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b18)//倒数
{
x=Double.parseDouble(tf1.getText().trim());
if(x==0)
{
tf1.setText("零没有倒数");
}
else
{
tf1.setText(""+(1/x));
}
str.setLength(0);
y=0d;
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
}
}
public static void main(String args[]) //主函数
{
new Counter();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -