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

📄 calculatorapplet.java

📁 这是一个JAVA的运算器
💻 JAVA
字号:
package wf.common.applet;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class CalculatorPanel extends JPanel
implements ActionListener
{
    private JTextField display = new JTextField("0");
    private double arg = 0;
    private double last = 0;
    private String op = "=";
    private boolean start = true;
    private JButton backButton = new JButton("BackSpace");
    private JButton clearButton = new JButton("Clear");
    
    public CalculatorPanel()
    {
        this.setLayout(new BorderLayout());
        JPanel p1 = new JPanel(new GridLayout(2, 1));
        JPanel p2 = new JPanel(new FlowLayout());
        display.setEditable(false);
        display.setBackground(Color.white);
        display.setFont(new Font("Courier New", Font.BOLD, 18));
        backButton.setForeground(Color.red);
        backButton.addActionListener(this);
        clearButton.setForeground(Color.red);
        clearButton.addActionListener(this);
        p2.add(backButton);
        p2.add(clearButton);
        p1.add(display);
        p1.add(p2);
        this.add(p1, "North");
        JPanel p3 = new JPanel(new GridLayout(4, 5));
        String buttonStr = "789/A456*B123-C0.D+=";
        for (int i = 0; i < buttonStr.length(); i++)
            this.addButton(p3, buttonStr.substring(i, i + 1));
        this.add(p3, "Center");
    }
    
    private void addButton(Container c, String s)
    {
        JButton b = new JButton(s);
        if (s.equals("A"))
            b.setText("sqrt");
        else if (s.equals("B"))            
            b.setText("1/x");
        else if (s.equals("C"))
            b.setText("%");
        else if (s.equals("D"))            
            b.setText("+/-");
        b.setForeground(Color.blue);
        c.add(b);
        b.addActionListener(this);
    }
    
    public void actionPerformed(ActionEvent event)
    {
        String cmd = event.getActionCommand();
        if ('1' <= cmd.charAt(0) && cmd.charAt(0) <= '9' && !cmd.equals("1/x"))
        {
            if (start || (display.getText().charAt(0) == '0' && display.getText().charAt(1) != '.'))                
                display.setText(cmd);
            else 
                display.setText(display.getText() + cmd);
            start = false;                
        }
        else if (cmd.equals("0"))
        {
            if (start || display.getText().charAt(0) == '0')
                display.setText(cmd);
            else
                display.setText(display.getText() + cmd);
            start = false;                
        }
        else if (cmd.equals("."))
        {
            if (start)
                display.setText(cmd);
            else if (display.getText().indexOf('.') == -1)                    
                display.setText(display.getText() + cmd);
            start = false;                
        }
        else if (cmd.equals("BackSpace"))
        {
            if (display.getText().length() > 1)
                display.setText(display.getText().substring(0, display.getText().length() - 1));
            else
            {
                display.setText("0");
                start = true;
            }
        }
        else if (cmd.equals("Clear"))
        {
            display.setText("0");
            start = true;
        }
        else if (cmd.equals("+/-"))
        {
            if (display.getText().indexOf('-') == -1)
                display.setText("-" + display.getText());
            else
                display.setText(display.getText().substring(1, display.getText().length()));
        }
        else if (cmd.equals("sqrt"))
        {
            arg = Double.parseDouble(display.getText());
            if (arg >= 0)
                display.setText(String.valueOf(Math.sqrt(arg)));
            else
                display.setText("Input Error, Parameters Must > 0!");
            start = true;
        }
        else if (cmd.equals("1/x"))
        {
            arg = Double.parseDouble(display.getText());
            display.setText(String.valueOf(1.0/arg));
            start = true;
        }
        else 
        {
            last = Double.parseDouble(display.getText());
            start = true;
            if (!cmd.equals("="))
            {
                op = cmd;
                arg = Double.parseDouble(display.getText());
            }
            else
                calculate();
            start = true;                
        }
    }
    
    public void calculate()
    {
        if (op.equals("+"))
            arg += last;
        else if (op.equals("-"))            
            arg -= last;
        else if (op.equals("*"))            
            arg *= last;
        else if (op.equals("/"))            
            arg /= last;
        else if (op.equals("%"))            
            arg %= last;
        display.setText(String.valueOf(arg));
    }
}

public class CalculatorApplet extends JApplet
{
    public void init()
    {
        Container contentPane = getContentPane();
        contentPane.add(new CalculatorPanel());
    }
}

⌨️ 快捷键说明

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