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