⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jisuanqi.java

📁 java原码制作的一个计数器程序的原代请站长审批和上一个不一样
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Jisuanqi extends JFrame {

        private Container container;
        private GridBagLayout layout;//定义布局
        private GridBagConstraints constraints; 
        private JTextField displayField;//计算结果显示区
        private String lastCommand;//保存+,-,*,/,=命令
        private double result;//保存计算结果
        private boolean start;//判断是否为数字的开始

        public Jisuanqi()        {

                super("Jisuanqi");
                container=getContentPane();
                layout=new GridBagLayout();
                container.setLayout(layout);
                constraints=new GridBagConstraints();
                start=true;
                result=0;
                lastCommand = "=";
                displayField=new JTextField(20);
                displayField.setHorizontalAlignment(JTextField.RIGHT);
                constraints.gridx=0;
                constraints.gridy=0;
                constraints.gridwidth=4;
                constraints.gridheight=1;
                constraints.fill=GridBagConstraints.BOTH;
                constraints.weightx=100;
                constraints.weighty=100;
                layout.setConstraints(displayField,constraints);
                container.add(displayField);
                ActionListener insert = new InsertAction();
                ActionListener command = new CommandAction();
                addButton("Backspace",0,1,2,1,insert);
                addButton("清零",2,1,2,1,insert);
                addButton("7",0,2,1,1,insert);
                addButton("8",1,2,1,1,insert);
                addButton("9",2,2,1,1,insert);
                addButton("除",3,2,1,1,command);
                addButton("4",0,3,1,1,insert);
                addButton("5",1,3,1,1,insert);
                addButton("6",2,3,1,1,insert);
                addButton("乘",3,3,1,1,command);
                addButton("1",0,4,1,1,insert);
                addButton("2",1,4,1,1,insert);
                addButton("3",2,4,1,1,insert);
                addButton("减",3,4,1,1,command);
                addButton("0",0,5,1,1,insert);
                addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值
                addButton(".",2,5,1,1,insert);
                addButton("加",3,5,1,1,command);
                addButton("等于",0,6,4,1,command);
                setSize(250,250);
                setVisible(true);
                
        }


        private void addButton(String label,int row,int column,int with,int height,ActionListener listener) {

                JButton button=new JButton(label);
                constraints.gridx=row;
                constraints.gridy=column;
                constraints.gridwidth=with;
                constraints.gridheight=height;
                constraints.fill=GridBagConstraints.BOTH;
                button.addActionListener(listener);
                layout.setConstraints(button,constraints);
                container.add(button);
       
        }//计算器的布局


        private class InsertAction implements ActionListener {

                public void actionPerformed(ActionEvent event) {

                        String input=event.getActionCommand();
                        if (start) {
                                displayField.setText("");
                                start=false;
                                if(input.equals("+/-"))
                                displayField.setText(displayField.getText()+"-"); 
                        }//负号
        
                        if(!input.equals("+/-")) {
                                if(input.equals("Backspace")) {
                                        String str=displayField.getText();
                                        if(str.length()>0)                                                                                   displayField.setText(str.substring(0,str.length()-1));//清楚

                                }else if(input.equals("清零"))        {
                                        displayField.setText("0");
                                        start=true;//清零
                                }else
                                        displayField.setText(displayField.getText()+input);
                        }
                }
        }


        private class CommandAction implements ActionListener {

                public void actionPerformed(ActionEvent evt) {
                        String command=evt.getActionCommand();
                        if(start) {
                                lastCommand=command;
                        }else {
                                calculate(Double.parseDouble(displayField.getText()));
                                lastCommand=command;
                                start=true;
                        }
                }
        }//事件监听

        public void calculate(double x) {
               if (lastCommand.equals("加")) result+= x;    
                else if (lastCommand.equals("减")) result-=x;
                else if (lastCommand.equals("乘")) result*=x;   
                else if (lastCommand.equals("除")) result/=x;
                else if (lastCommand.equals("等于")) result=x;
                displayField.setText(""+ result);
        }//计算操作

        public static void  main(String []args) {
              Jisuanqi jisuanqi=new Jisuanqi();
              jisuanqi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出

        }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -