📄 jisuanqi.java
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//计算器显示结果的窗体
class Result extends JPanel
{
JTextField text=new JTextField("0");
Result()
{
text.setHorizontalAlignment(SwingConstants.RIGHT);
text.enable(false);
setLayout(new BorderLayout());
add(text,BorderLayout.CENTER);
}
}
//计算器按键定义
class Number_Key extends JPanel
{
JButton zero= new JButton("0");
JButton one= new JButton("1");
JButton two= new JButton("2");
JButton three= new JButton("3");
JButton four= new JButton("4");
JButton five= new JButton("5");
JButton six= new JButton("6");
JButton seven= new JButton("7");
JButton eight= new JButton("8");
JButton nine= new JButton("9");
JButton jia= new JButton("+");
JButton sub= new JButton("-");
JButton mul= new JButton("*");
JButton div= new JButton("/");
JButton equal= new JButton("=");
JButton c= new JButton("c");// 置零键
JButton point= new JButton(".");
Number_Key()
{
setLayout(new GridLayout(6,3,10,10));
add(seven);
add(eight);
add(nine);
add(four);
add(five);
add(six);
add(one);
add(two);
add(three);
add(zero);
add(jia);
add(sub);
add(mul);
add(div);
add(point);
add(equal);
add(c);
}
}
//计算器主类
public class Jisuanqi extends JFrame implements ActionListener
{
Result result=new Result();
Number_Key number_key=new Number_Key();
//当单击按钮+,-,/,*时com=ture
boolean com=false;
//当i=1时说明是我第一次输入。字符串Sum不会累加
int i=0;
//存放text的数
String sum="";
//存放单击按钮/,*,-,+之前的数
double total=0;
//+,-,*,/的代号分别是1,2,3,4
int symbol=0;
Jisuanqi()
{
super("计算器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane=new JPanel();
pane.setLayout(new BorderLayout());
pane.add(result,BorderLayout.NORTH);
pane.add(number_key,BorderLayout.SOUTH);
number_key.one.addActionListener(this);
number_key.two.addActionListener(this);
number_key.three.addActionListener(this);
number_key.four.addActionListener(this);
number_key.five.addActionListener(this);
number_key.six.addActionListener(this);
number_key.seven.addActionListener(this);
number_key.eight.addActionListener(this);
number_key.nine.addActionListener(this);
number_key.zero.addActionListener(this);
number_key.jia.addActionListener(this);
number_key.sub.addActionListener(this);
number_key.mul.addActionListener(this);
number_key.div.addActionListener(this);
number_key.c.addActionListener(this);
number_key.equal.addActionListener(this);
number_key.point.addActionListener(this);
setContentPane(pane);
pack();
}
//各个按钮的事件
public void actionPerformed(ActionEvent e){
if(e.getSource()==number_key.one){
if(com||i==0){
result.text.setText("1");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"1");
}
}
else if(e.getSource()==number_key.two){
if(com||i==0){
result.text.setText("2");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"2");
}
}
else if(e.getSource()==number_key.three){
if(com||i==0){
result.text.setText("3");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"3");
}
}
else if(e.getSource()==number_key.four){
if(com||i==0){
result.text.setText("4");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"4");
}
}
else if(e.getSource()==number_key.five){
if(com||i==0){
result.text.setText("5");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"5");
}
}
else if(e.getSource()==number_key.six){
if(com||i==0){
result.text.setText("6");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"6");
}
}
else if(e.getSource()==number_key.seven){
if(com||i==0){
result.text.setText("7");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"7");
}
}
else if(e.getSource()==number_key.eight){
if(com||i==0){
result.text.setText("8");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"8");
}
}
else if(e.getSource()==number_key.nine){
if(com||i==0){
result.text.setText("9");
com=false;
i=1;
}
else{
sum=result.text.getText();
result.text.setText(sum+"9");
}
}
else if (e.getSource()==number_key.c){
result.text.setText("0");
i=0;
com=true;
}
else if(e.getSource()==number_key.zero){
if(com||i==0){
result.text.setText("0");
com=false;
i=1;
}
else{
sum=result.text.getText();
if(Float.parseFloat(sum)>0||Float.parseFloat(sum)<0){
result.text.setText(sum+"0");
}
else{
if(sum.trim().indexOf(".")==-1){
result.text.setText(sum);
}else{
result.text.setText(sum+"0");
}
}
}
}
else if(e.getSource()==number_key.point){
if(com||i==0){
result.text.setText("0.");
com=false;
i=1;
}
else{
sum=result.text.getText();
if(sum.trim().indexOf(".")==-1){
result.text.setText(sum+".");
}
else{
result.text.setText(sum);
}
}
}
else if(e.getSource()==number_key.jia){
com=true;
i=0;
total=Double.parseDouble(result.text.getText());
symbol=1;
}
else if(e.getSource()==number_key.sub){
com=true;
i=0;
total=Double.parseDouble(result.text.getText());
symbol=2;
}
else if(e.getSource()==number_key.mul){
com=true;
i=0;
total=Double.parseDouble(result.text.getText());
symbol=3;
}
else if(e.getSource()==number_key.div){
com=true;
i=0;
total=Double.parseDouble(result.text.getText());
symbol=4;
}
else if(e.getSource()==number_key.equal){
switch(symbol){
case 1:
{
double ad =total+Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
sum="";
break;
}
case 2:
{
double ad =total-Double.parseDouble(result.text.getText());
result.text.setText(String.valueOf(ad));
i=0;
sum="";
break;
}
case 3:
{
double ad =total*Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
sum="";
break;
}
case 4:
{
double ad =total/Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
sum="";
break;
}
}
System.out.println(com);
}
}
public static void main(String[] args){
Jisuanqi jisuanqi=new Jisuanqi();
jisuanqi.show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -