ZBLOG

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Calc...

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

public class Calculator {     Frame f = new Frame(“计算器”);     Panel p1 = new Panel();     Panel p2 = new Panel();     TextField tf = new TextField(30);     Button b0 = new Button(“1”);     Button b1 = new Button(“2”);     Button b2 = new Button(“3”);     Button b3 = new Button(“/”);     Button b4 = new Button(“4”);     Button b5 = new Button(“5”);     Button b6 = new Button(“6”);     Button b7 = new Button(“*”);     Button b8 = new Button(“7”);     Button b9 = new Button(“8”);     Button b10 = new Button(“9”);     Button b11= new Button(“-”);     Button b12 = new Button(“0”);    

// 增加多彩颜色
Color c1=new Color(255,255,0);
Color c2=new Color(255,192,203);
Color c3=new Color(128,128,128);
Color c4=new Color(135,206,250);

// 将按钮的颜色设置为多彩
public void setButtonColor(Button btn) {
    if (btn == null) return;

    String label=btn.getLabel().toLowerCase();

    if (label.contains("+")) {
        btn.setBackground(c1);
    } else if (label.contains("-")) {
        btn.setBackground(c2);
    } else if (label.contains("*")) {
        btn.setBackground(c3);
    } else if (label.contains("/")) {
        btn.setBackground(c4);
    } else {
        btn.setBackground(Color.WHITE);
    }
}

    Button b13 = new Button(“c”);     Button b14= new Button(“+”);     Button b15= new Button(“=”);     Button b16= new Button(“sin”);     Button b17= new Button(“cos”);     Button b18= new Button(“tan”);     Button b19= new Button(“log”);

    A aa = new A();

    class A implements ActionListener{         @Override         public void actionPerformed(ActionEvent e) {

            String s = e.getActionCommand();             if(s.equals(“c”)) {//清零                 tf.setText(“”);             }else if(s.equals(“=”)) {                 try {                     String str = tf.getText().trim();                     double result = 0.0;                     if(str.contains(“+”)) {                         String num1 = str.substring(0,str.indexOf(“+”)).trim();                         String num2 = str.substring(str.indexOf(“+”)+1).trim();                         result = Double.parseDouble(num1)+Double.parseDouble(num2);                     }else if(str.contains(“-”)) {                         String num1 = str.substring(0,str.indexOf(“-”)).trim();                         String num2 = str.substring(str.indexOf(“-”)+1).trim();                         result = Double.parseDouble(num1)-Double.parseDouble(num2);                     }else if(str.contains(””)) {                         String num1 = str.substring(0,str.indexOf(””)).trim();                         String num2 = str.substring(str.indexOf(“*”)+1).trim();                         result = Double.parseDouble(num1)*Double.parseDouble(num2);                     }else if(str.contains(“/”)) {                         String num1 = str.substring(0,str.indexOf(“/”)).trim();                         String num2 = str.substring(str.indexOf(“/”)+1).trim();                         if(num2.equals(“0”)) {                             tf.setText(“分母不能为0”);                             return;                         }                         result = Double.parseDouble(num1)/Double.parseDouble(num2);                     }                     tf.setText(String.valueOf(result));                 }catch(Exception exception) {                     tf.setText(“输入有误”);                 }             }else if(s.equals(“sin”)) {                 try {                     String str = tf.getText().trim();                     double num = Double.parseDouble(str);                     double result = Math.sin(num * Math.PI / 180);             

                setButtonColor(b16); // 设置按钮颜色

                tf.setText(String.valueOf(result));
            } catch (Exception exception) {
                tf.setText("输入有误");
            }
        } else if (s.equals("cos")) {
            try {
                String str = tf.getText().trim();
                double num = Double.parseDouble(str);
                double result = Math.cos(num * Math.PI / 180);

                setButtonColor(b17); // 设置按钮颜色

                tf.setText(String.valueOf(result));
            } catch (Exception exception) {
                tf.setText("输入有误");
            }
        } else if (s.equals("tan")) {
            try {
                String str = tf.getText().trim();
                double num = Double.parseDouble(str);
                double result = Math.tan(num * Math.PI / 180);

                setButtonColor(b18); // 设置按钮颜色

                tf.setText(String.valueOf(result));
            } catch (Exception exception) {
                tf.setText("输入有误");
            }
        } else if (s.equals("log")) {
            try {
                String str = tf.getText().trim();
                double num = Double.parseDouble(str);
                double result = Math.log(num);

                setButtonColor(b19); // 设置按钮颜色

                tf.setText(String.valueOf(result));
            } catch (Exception exception) {
                tf.setText("输入有误");
            }
        } else if (Character.isDigit(s.charAt(0))) { // 限制只能输入数字

                tf.setText(tf.getText() + s);             }

    }
}

    void init() {         p1.add(tf);         p2.setLayout(new GridLayout(5,4,5,5));         p2.add(b1);         p2.add(b2);         p2.add(b3);         p2.add(b0);         p2.add(b4);         p2.add(b5);         p2.add(b6);         p2.add(b7);         p2.add(b8);         p2.add(b9);         p2.add(b10);

    p2.add(b11);

    b11.setBackground(Color.WHITE); // 设置减号的背景为白色

    p2.add(b12);

        p2.add(b13);

    b13.setBackground(Color.WHITE); // 设置清零按钮的背景为白色

    b14.setBackground(c1); // 设置加号的颜色
    b15.setBackground(c4); // 设置等于号的颜色

        p2.add(b14);

    for (int i = 16; i <= 19; i++) {
        Button btn = (Button)p2.getComponent(i - 1); // 获取 sin、cos、tan、log 按钮
        setButtonColor(btn); // 设置按钮颜色
    }

        p2.add(b15);

    p2.add(b16);
    p2.add(b17);
    p2.add(b18);

        p2.add(b19);

        b0.addActionListener(aa);         b1.addActionListener(aa);         b2.addActionListener(aa);         b3.addActionListener(aa);         b4.addActionListener(aa);         b5.addActionListener(aa);         b6.addActionListener(aa);         b7.addActionListener(aa);         b8.addActionListener(aa);         b9.addActionListener(aa);         b10.addActionListener(aa);

    // 添加按钮监听器

        for(int i=11;i<=19;i++) {             Button btn=(Button)p2.getComponent(i-1); // 获取第i个按钮             btn.setBackground(Color.WHITE); // 设置按钮背景为白色             btn.setForeground(Color.BLACK); // 设置文字颜色为黑色             btn.setFont(btn.getFont().deriveFont(18f)); // 设置文字大小为18号字体             btn.addActionListener(new ActionListener() { // 为按钮添加监听器                 public void actionPerformed(ActionEvent e) {                     String str=tf.getText()+btn.getLabel(); // 将输入框中的内容与当前按钮的标签相加,得到新的字符串                     tf.setText(str); // 将新的字符串设置到输入框中去

                setButtonColor(btn); // 设置按钮颜色
            }
        });
    }

    f.add(p1,BorderLayout.NORTH);    

       f.add(p2,BorderLayout.CENTER);

    f.setSize(300,250);    

       f.setVisible(true);      }

public static void main(String[] args) { 

       new Calculator().init();      }  }

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=1163

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?