计算器+改变窗口颜色

 
  
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();
          }   
  
}

 

 

       

 

转载于:https://www.cnblogs.com/Maxsh/p/10905107.html

java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.Component.*; import java.awt.color.*; import java.text.DecimalFormat; //*****************************************************************************// //*****************************************************************************// public class Calculator implements ActionListener //导入动作监听接口 { //******************************// //*****设计计算器界面的单位*****// JFrame frame; //定义框架 JTextField textAnswer; //定义输出显示框 JPanel panel, panel1, panel2, panel3;//定义面板作为子容器,从而达到要求的界面效果 JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal,myCollege; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存中存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd) short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 boolean clear = false; String copy; //做复制用 JTextArea help; //帮助 JScrollPane scrollHelp; static boolean One =true; //******************// //*****构造函数开始*****// public Calculator() { clickable = true; answerd = 0; frame = new JFrame("梦幻计算器--SWE08008"); frame.setResizable(false);//不允许改变计算器的大小 frame.setLocation(250,150);//设置计算器的起始位置 frame.setBackground(Color.YELLOW); df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值