📄 calculatora.java
字号:
package day11;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CalculatorA {
private JFrame jf;
private JButton[] jbs;
private JTextField jtf;//显示屏
private JButton clear;//清空按钮
private double num1,num2;//用来存储俩个操作数
private char operator;//用来存储运算符
public CalculatorA(){
//实例化属性
jf=new JFrame("我的计算器v1.1");
jbs=new JButton[16];
jtf=new JTextField(20);
clear=new JButton("clear");
String str="123+456-789*0.=/";
for(int i=0;i<str.length();i++){
jbs[i]=new JButton(str.charAt(i)+"");
}
addEvenHandler();
}
public void init(){
//布局图形界面
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
jp1.setLayout(new FlowLayout());
jp1.add(jtf);
jp2.setLayout(new GridLayout(4,4));
for(int i=0;i<jbs.length;i++){
jp2.add(jbs[i]);
}
jp3.setLayout(new FlowLayout());
jp3.add(clear);
jf.add(jp1,BorderLayout.NORTH);//最上部分----显示屏
jf.add(jp2,BorderLayout.CENTER);//中间部分----按键
jf.add(jp3,BorderLayout.SOUTH);//下部分-----清空按键
}
public void setPont(){//设置字体
Font f=new Font("隶书",Font.PLAIN,24);
jtf.setFont(f);
for(int i=0;i<jbs.length;i++){
jbs[i].setFont(f);
}
clear.setFont(f);
}
public void setColor(){//设置颜色
jtf.setBackground(Color.GREEN);
jtf.setForeground(Color.BLUE);
}
public void addEvenHandler(){
ActionListener lis=new ActionListener(){
public void actionPerformed(ActionEvent e) {
JButton jb=(JButton)e.getSource();//getSource获得事件原
String str=jb.getText().trim();//trim 去掉首尾空格
//String str2=e.getActionCommand().trim();//直接能得到事件原上的文本
if("0123456789.".indexOf(str)!=-1){//如果是数字或点号,则显示出来
jtf.setText(jtf.getText()+str);
return;
}
if("+-*/".indexOf(str)!=-1){//如果是操作符
num1=Double.parseDouble(jtf.getText());//把屏幕的字符串转成double类型并存储在num1中
operator=str.charAt(0);//把该操作符转成char类型,并存储在operator中
jtf.setText(null);//清空屏幕
return;
}
if(str.equals("=")){//如果是等号
num2=Double.parseDouble(jtf.getText());//把屏幕的字符串转成double类型并存储在num2中
double d=0;//定义一个double变量,用来存储运算结果
if(operator=='+')
d=num1+num2;
if(operator=='-')
d=num1-num2;
if(operator=='*')
d=num1*num2;
if(operator=='/')
d=num1/num2;
if(d-(int)d==0)//如果结果是整型
jtf.setText((int)d+"");//转化成int使输出结果不带.0部分
else//否则
jtf.setText(d+"");//输出double类型
return;
}
if(str.equals("clear")){//如果是clear,清空屏幕
jtf.setText(null);
return;
}
}
};
for(int i=0;i<jbs.length;i++){
jbs[i].addActionListener(lis);
}
clear.addActionListener(lis);
}
public void showMe(){
init();
setPont();
setColor();
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new CalculatorA().showMe();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -