logo资料库

java模拟科学计算器.docx

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ca extends JFrame implements ActionListener { //*********************************************************************** //标准型计算器控件键钮 static JFrame f1 = new JFrame("计算器"); private String KEYS[] = {"7","8","9","/","sqrt","4","5","6","*","%", "1","2","3","-","1/x","0","+/-",".","+","="}; private private String M[] = {" String COM[] = {"Backspace","CE","C"}; ","MC","MR","MS","M+"}; private JButton keys[] = new JButton[KEYS.length]; private JButton com[] = new JButton[COM.length]; private JButton m[] = new JButton[M.length]; private JTextField result,hh,jj; MenuBar menubar1=new MenuBar(); Menu edit=new Menu("编辑(E)"), view=new Menu("查看(V)"), help=new Menu("帮助(H)"); MenuItem copy=new MenuItem("复制(C)"), paste=new MenuItem("粘贴(P)"), standar=new MenuItem("标准型(T)"), science=new MenuItem("科学型(S)"), numgroup=new MenuItem("数字分组(I)"), helpt=new MenuItem("帮助主题(H)"), about=new MenuItem("关于计算器(A)"); private boolean firstDigit = true; private double resultNum = 0.0,resultNum2 = 0.0; private String operator = "=",co,str,operator2 = "="; private boolean operateValidFlag = true; //判断第一个输入的字符是否是数字 //中间结果 //*********************************************************************** //科学性计算器控件及按钮 static JFrame f2 = new JFrame("科学计算器");
private JTextField result2; private String[] KON = {"sta","F-E","(",")","MC","Ave","dms","Exp", "In","MR","Sum","sin","x^y","log","MS","s","cos","x^3","n!", "M+","Dat","tan","x^2","1/x","pi"}; private String[] KO = {"7","8","9","/","Mod","And", "4","5","6","*","Or","Xor", "1","2","3","-","Lsh","Not", "0","+/-",".","+","=","Int", "A","B","C","D","E","F"}; String ITM[]={"标准型","科学型","十六进制数(H) F5","十进制(D) F6", private "八进制(O) F7","二进制(B) F8","四字(Q) F12","DWORD 值(R)F2","单字(W)F3","字节(Y) F4" ,"数字分组(I)"}; private final String[] COMM = {"Backspace","CE","C"}; private JButton comm[] = new JButton[COMM.length]; private JButton kon[] = new JButton[KON.length]; private JButton ko[] = new JButton[KO.length]; private MenuItem itm[] = new MenuItem[ITM.length]; private JPanel panel0,panel1,panel2,panel3,panel4,panel5,panel6; Checkbox checkbox1,checkbox2,checkbox3,checkbox4; MenuBar menubar2=new MenuBar(); //添加菜单条 Menu edit2=new Menu("编辑(E)"), view2=new Menu("查看(V)"), help2=new Menu("帮助(H)"); MenuItem copy2=new MenuItem("复制(C) Ctrl+C"), past2=new MenuItem("粘贴(P) Ctrl+V"), standar2=new MenuItem("标准型(T)"), science2=new MenuItem("科学型(S)"), numgroup2=new MenuItem("数字分组(I)"), menuitem1=new MenuItem("十六进制数(H) F5"), menuitem2=new MenuItem("十进制(D) F6"), menuitem3=new MenuItem("八进制(O) F7"), menuitem4=new MenuItem("二进制(B) F8"), menuitem5=new MenuItem("四字(Q) F12"), menuitem6=new MenuItem("DWORD 值(R)F2"), menuitem7=new MenuItem("单字(W)F3"),
menuitem8=new MenuItem("字节(Y) F4"), helpt2=new MenuItem("帮助主题(H)"), about2=new MenuItem("关于计算器(A)"); //*********************************************************************** //构造函数 public Ca() { //标准型开始初始化******************** result = new JTextField("0."); result.setHorizontalAlignment(JTextField.RIGHT); //文字右对齐 result.setEditable(false); result.setBackground(Color.WHITE); //设置为不可编辑 //设置颜色为白色 JPanel k0 = new JPanel(); k0.setLayout(new GridLayout(4,5,5,5)); for(int i = 0;i < KEYS.length;i++) { keys[i] = new JButton(KEYS[i]); k0.add(keys[i]); keys[i].setForeground(Color.blue); } keys[3].setForeground(Color.red); keys[8].setForeground(Color.red); keys[13].setForeground(Color.red); keys[18].setForeground(Color.red); keys[19].setForeground(Color.red); JPanel c0 = new JPanel(); c0.setLayout(new GridLayout(1,3,5,5)); for(int i = 0;i < COM.length;i++) { com[i] = new JButton(COM[i]); c0.add(com[i]); com[i].setForeground(Color.red); } JPanel m0 = new JPanel(); m0.setLayout(new GridLayout(5,1,5,5)); for(int i = 0;i < M.length;i++)
{ m[i] = new JButton(M[i]); m0.add(m[i]); m[i].setForeground(Color.red); } m[0].setForeground(Color.black); //f1 的监视器 for(int i = 0;i < KEYS.length;i++) { keys[i].addActionListener(this); } for(int i = 0;i < COM.length;i++) { com[i].addActionListener(this); } for(int i = 0;i < M.length;i++) { m[i].addActionListener(this); } //复制事件 copy.addActionListener(new ActionListener() { }); public void actionPerformed(ActionEvent e) { } int count; count=str.length(); if(count!=0) co=result.getText(); else System.out.println("没有可复制的对象"); //粘贴事件 paste.addActionListener(new ActionListener() { }); public void actionPerformed(ActionEvent e) { } str=co; result.setText(str);
//复制事件 copy2.addActionListener(new ActionListener() { }); public void actionPerformed(ActionEvent e) { } int count; count=str.length(); if(count!=0) co=result2.getText(); else System.out.println("没有可复制的对象"); //粘贴事件 past2.addActionListener(new ActionListener() { }); public void actionPerformed(ActionEvent e) { } str=co; result2.setText(str); edit.add(copy); edit.add(paste); view.add(standar); view.add(science); view.addSeparator(); view.add(numgroup); help.add(helpt); help.addSeparator(); help.add(about); menubar1.add(edit); menubar1.add(view); menubar1.add(help); //整体布局 JPanel p1 = new JPanel(); p1.setLayout(new BorderLayout()); p1.add("North",c0); p1.add("Center",k0); JPanel p2 = new JPanel(); p2.setLayout(new BorderLayout()); p2.add("Center",result);
f1.setLayout(new BorderLayout(3,5)); f1.add("North",p2); f1.add("Center",p1); f1.add("West",m0); f1.setBackground(Color.LIGHT_GRAY); f1.setLocation(200,200); f1.setMenuBar(menubar1); f1.setVisible(true); f1.setResizable(false);//不可最大化 f1.pack(); f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //紧凑 //标准型初始化结束 //**************************************************** standar2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ f1.setVisible(true); f2.setVisible(false); //按钮不可操作 }}); science.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ f1.setVisible(false); f2.setVisible(true); //按钮不可操作 }}); //**************************************************** //科学性初始化开始 panel0=new JPanel(); panel1=new JPanel(); panel2=new JPanel(); panel3=new JPanel(); panel4=new JPanel(); panel5=new JPanel(); panel6=new JPanel(); panel0.setLayout(new GridLayout(1,4)); panel1.setLayout(new GridLayout(1,3,30,0)); panel2.setLayout(new GridLayout(1,2)); panel3.setLayout(new GridLayout(1,3,5,0)); panel4.setLayout(new GridLayout(5,5,5,5)); panel5.setLayout(new GridLayout(5,6,5,5)); panel6.setLayout(new FlowLayout(FlowLayout.LEFT)); result2 = new JTextField("0.",100); //设置网格型布局管理器 //按钮左对齐
result2.setHorizontalAlignment(JTextField.RIGHT); //文字右对齐 //设置为文本不可编辑 result2.setEditable(false); result2.setBackground(Color.WHITE); //设置文本框颜色为白色 CheckboxGroup cbg1=new CheckboxGroup(); checkbox1=new Checkbox("十六进制",false,cbg1); checkbox2=new Checkbox("十进制",true,cbg1); checkbox3=new Checkbox("八进制",false,cbg1); checkbox4=new Checkbox("二进制",false,cbg1); panel0.add(checkbox1); panel0.add(checkbox2); panel0.add(checkbox3); panel0.add(checkbox4); CheckboxGroup cbg2=new CheckboxGroup(); panel1.add(new Checkbox("角度",true,cbg2)); panel1.add(new Checkbox("弧度",false,cbg2)); panel1.add(new Checkbox("梯度",false,cbg2)); JLabel HH = new JLabel(" panel2.add(new Checkbox("Inv",false)); panel2.add(new Checkbox("Hyp",false)); "); hh = new JTextField(); jj = new JTextField(); hh.setText(" "); hh.setEditable(false); jj.setText(" jj.setEditable(false); "); panel2.add(hh);panel2.add(HH);panel2.add(jj); panel6.add(result2); edit2.add(copy2); edit2.add(past2); view2.add(standar2); view2.add(science2); view2.addSeparator(); view2.add(menuitem1); view2.add(menuitem2); view2.add(menuitem3);
view2.add(menuitem4); view2.addSeparator(); view2.add(menuitem5); view2.add(menuitem6); view2.add(menuitem7); view2.add(menuitem8); view2.addSeparator(); view2.add(numgroup2); help2.add(helpt2); help2.addSeparator(); help2.add(about2); menubar2.add(edit2); menubar2.add(view2); menubar2.add(help2); for(int i = 0;i < COMM.length;i++) { comm[i] = new JButton(COMM[i]); panel3.add(comm[i]); comm[i].setForeground(Color.red); } for(int i = 0;i < KON.length;i++) { kon[i] = new JButton(KON[i]); panel4.add(kon[i]); kon[i].setForeground(Color.magenta); } kon[4].setForeground(Color.red); kon[9].setForeground(Color.red); kon[14].setForeground(Color.red); kon[19].setForeground(Color.red); kon[0].setForeground(Color.blue); kon[24].setForeground(Color.blue); kon[5].setForeground(Color.blue); kon[10].setForeground(Color.blue); kon[15].setForeground(Color.blue); kon[20].setForeground(Color.blue); for(int i = 0;i < KO.length;i++) { ko[i] = new JButton(KO[i]); panel5.add(ko[i]); ko[i].setForeground(Color.red); } ko[0].setForeground(Color.blue);
分享到:
收藏