计算器+改变窗口颜色


package 界面;
import java.awt.*;
import java.awt.GridLayout;
import java.awt.event.*;
import java.awt.BorderLayout;
import javax.swing.*;  
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
    public class Calculator implements ActionListener {  
          JFrame f;
          JPanel p;
          JPanel p1;
          JTextField t;
          JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,delete;
          GridLayout g1;
          String nowButton;
        public  Calculator(){
            f=new JFrame();
            g1=new GridLayout(5,4);
            p=new JPanel();
            p.setLayout(g1);          
            t=new JTextField();
            b1=new JButton("7");b2=new JButton("8");b3=new JButton("9");b4=new JButton("/");
            b5=new JButton("4");b6=new JButton("5");b7=new JButton("6");b8=new JButton("*");
            b9=new JButton("1");b10=new JButton("2");b11=new JButton("3");b12=new JButton("-");        
            b13=new JButton("0");b14=new JButton(".");b15=new JButton("=");b16=new JButton("+");
            delete=new JButton("C");
            b1.addActionListener(this);b2.addActionListener(this);
            b3.addActionListener(this);b4.addActionListener(this);
            b5.addActionListener(this);b6.addActionListener(this);
            b7.addActionListener(this);b8.addActionListener(this);
            b9.addActionListener(this);b10.addActionListener(this);
            b11.addActionListener(this);b12.addActionListener(this);
            b13.addActionListener(this);b14.addActionListener(this);
            b15.addActionListener(this);b16.addActionListener(this);
            delete.addActionListener(this);
            p.add(b1);p.add(b2);p.add(b3);p.add(b4);p.add(b5);p.add(b6);p.add(b7);
            p.add(b8);p.add(b9);p.add(b10);p.add(b11);p.add(b12);p.add(b13);p.add(b14);
            p.add(b15);p.add(b16);p.add(delete);
            f.add(t,BorderLayout.NORTH);
            f.add(p,BorderLayout.CENTER);
            f.setSize(400,300);
            f.setVisible(true);
            
        }
      public static void main(String[] args) {
            new Calculator();
            }     
           
      public void actionPerformed(ActionEvent e) {
            nowButton = e.getActionCommand();
            if (nowButton != "=") {
                t.setText(t.getText() + nowButton);
            }
            if (nowButton.equals("=")) {
                t.setText(jisuan(t.getText()));
            }
            if (nowButton.equals("C")) {
                t.setText("0.0");
            }
        }
    
       public String jisuan(String string) {
        StringBuffer sb = new StringBuffer(string);
        int commandCount = 0;//符号数量
        int j = 0;//计数器
        for (j = 0; j < sb.length(); j++) {
            if (sb.charAt(j) <= '9' && sb.charAt(j) >= '0' || sb.charAt(j) == '.') {
                continue;
            }else {
                commandCount++;
            }
        }
        char[] command = new char[commandCount];//初始化符号数组
        //初始化数字数组(用字符串表示)
        String[] num = new String[commandCount+1];//计算有多少个运算符,就有n+1个数字
        for (j = 0; j < num.length; j++) {
            num[j] = "";
        }

        //遍历一遍,吧每个数字存进数字数组,每个符号存进符号数组
        int k = 0;
        for (j = 0; j < sb.length(); j++) {
            if (sb.charAt(j) <= '9' && sb.charAt(j) >= '0' || sb.charAt(j) == '.') {
                num[k] += sb.charAt(j);//用charAt()装运算符和数字
                continue;
            }else {
                command[k] = sb.charAt(j);
                k++;
            }
        }
        double result = 0;
        for (int i = 0; i < commandCount; i++) {            
            //取前两个数,和第一个操作符,运算
            double num1 = Double.parseDouble(num[i]);//把字符串转换为Double
            double num2 = Double.parseDouble(num[i+1]);
            char c1 = command[i];
            //计算
            switch (c1) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                result = num1 / num2;
                break;
            default:
                break;
            }
            num[i+1] = String.valueOf(result);//将double 变量转换成字符串
        }
        
        return String.valueOf(result);
    }
      
    }

   

 

 

 

 

 

package 界面;
import java.awt.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import javax.swing.*;  
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Color;

public class colors  implements ActionListener{
    JFrame f;
    JPanel p;
    JPanel p1;
    JButton b1,b2,b3;
    FlowLayout g1;
    public colors(){
        f=new JFrame();
          g1=new FlowLayout(1,3,0);
          p=new JPanel();
          p1=new JPanel();
          p.setLayout(g1);
          p1.setLayout(g1);
          p1.setBackground(Color.green);
        b1=new JButton("红色");
        b2=new JButton("绿色");
        b3=new JButton("黄色");
        b1.addActionListener(this);
        b1.setActionCommand("红色");
        b2.addActionListener(this);
        b2.setActionCommand("绿色");
        b3.addActionListener(this);
        b3.setActionCommand("黄色");
        p.add(b1);
        p.add(b2);
        p.add(b3);
        f.add(p,BorderLayout.NORTH);
        f.add(p1,BorderLayout.CENTER);
        f.setSize(400,300);
        f.setVisible(true);
    }
    
    
    
    public void actionPerformed(ActionEvent e){
            if(e.getActionCommand().equals("红色")){
            p1.setBackground(Color.red);
            } 
            else if(e.getActionCommand().equals("绿色")){
            p1.setBackground(Color.green); 
            } 
            else if(e.getActionCommand().equals("黄色")){
            p1.setBackground(Color.yellow); 
            }     
    }
  
    public static void main(String[] args) {
          new colors();
          }   
  
}

 

 

       

 

posted on 2019-05-22 11:58  孙泽玺  阅读(415)  评论(0编辑  收藏  举报

导航