当前位置: 首页 > 图灵资讯 > 技术篇> Java保存计算过程的计算器(小课设)

Java保存计算过程的计算器(小课设)

来源:图灵教育
时间:2023-07-07 16:47:49

效果图:

Java保存计算过程的计算器(小课设)_i++

需要建立的类别

Java保存计算过程的计算器(小课设)_java_02

源代码

启动.java

 import java.awt.BorderLayout;import java.awt.Button;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.Box;import javax.swing.JApplet;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JSplitPane;import javax.swing.JTextArea;import javax.swing.plaf.basic.BasicSplitPaneUI.BasicVerticalLayoutManager; public class 启动 {public static void main(String[] args) {计算器 start = new 计算器();        start.启动();}}

计算器.java

import java.awt.Dimension;import java.awt.*; import javax.swing.*;  public class JFrame计算器{//界面 frame = new JFrame(计算器);///文本域,从左到右,JTextarearea area1 = new JTextArea(1,13);JTextArea area2 = new JTextArea(1,2);JTextArea area3 = new JTextArea(1,13);JTextArea area4 = new JTextArea(1,50);//右侧结果输出小框JTextarearea area5 = new JTextArea(16,50);//右边大框//水平盒布局Box hbox套三arear = Box.createHorizontalBox();Box hbox套三按钮 = Box.createHorizontalBox();//网格布局,Gridlayout计算器界面 gridLayout = new GridLayout(5,5);//面板1  JPanell计算器按钮面板 JPanel1 = new JPanel();//JPanell文本 JPanel2 = new JPanel();//JPanel键盘 jpanel3 = new JPanel();/左大块//面板2JPanel jpanel4 = new JPanel();//右大块//右下按钮JButton buttona = new JButton(“保存”);JButton buttonc = new JButton(复制);JButton buttonz = new JButton(“清除”);//1-9JButton[] button数字 = new JButton[10];JButton button加 = new JButton("+");JButton button减少 = new JButton("-");JButton button乘 = new JButton("*");JButton button除 = new JButton("/");JButton button清空 = new JButton("C");JButton button分类 = new JButton("1/x");JButton button相反值 = new JButton(+/-);JButton button小数点 = new JButton(".");JButton button开方 = new JButton("sqrt");JButton button退格 = new JButton(退格);JButton button等于 = new JButton("=");///其它操作符,,,,JButtton[] 其他button = {button加,button减,button乘,button除,button开方,button分类,button相反值,buttton小数点,buttton退格,buttton清空,button等于};////定义监听器类数字listennerbutton/// button数字listener = new 数字listennerbutton(this);其他一个button 其他一个button = new 其他一个button(this);另外两个button 另外两个button = new 另外两个button(this);其他三个button 其他三个button = new 其他三个button(this);button小数点 button小数点a = new button小数点(this);myfocus myfocus1 = new myfocus(this);myfocus myfocus3 = new myfocus(this);buttonaczlistenner buttonaczlistenner = new buttonaczlistenner(this);      void 组装监听器() {    area1.addFocusListener(myfocus1);    area3.addFocusListener(myfocus3);        area4.setEditable(false);    area5.setEditable(false);        buttona.addActionListener(buttonaczlistenner);buttonc.addActionListener(buttonaczlistenner);buttonz.addActionListener(buttonaczlistenner);for(int i=0;i<4;i++) {button别的[i].addActionListener(其他一个button);}for(int i=4;i<7;i++) { 其他button[i].addActionListener(另外两个button);}for(int i=8;i<11;i++) { 其他button[i].addActionListener(其他三个button);}button小数点.addActionListener(button小数点a);}   void 命名() {area1.setName("1");area3.setName("3");其他button[7].setName(".");其他button[8].setName(退格);其他button[9].setName("C");其他button[10].setName("=");buttona.setName(“保存”);buttonc.setName(复制);buttonz.setName(“清除”);}       void 组装布局() {   命名();   组装监听器();    ///计算器组装按钮 jpanel2.setLayout(gridLayout);///方格布局 for(int i=0;i<=9;i++) { button数字[i]=new JButton(""+i); button数字[i].setPreferredSize(new Dimension(60, 60)); jpanel2.add(button数字[i]); button数字[i].addActionListener(button数字listener1); }   for(int i=0;i<其他button.length;i++) { 其他button[i].setPreferredSize(new Dimension(50, 30)); jpanel2.add(button其他[i]); }     //组装在左上方 hbox套三arearrr.add(area1); hbox套三arearrr.add(hbox套三arearrrr.createHorizontalStrut(5)); hbox套三arearrr.add(area2); 三areahbox套三r.add(三areahbox套三rr.createHorizontalStrut(5)); 三areahbox套三r.add(area3); jpanel1.add(三areahbox套三rr);  /////右下角按钮水平组装 hbox套三按钮.add(hbox套三按钮.createHorizontalStrut(10)); hbox套三按钮.add(buttona); hbox套三按钮.add(hbox套三按钮.createHorizontalStrut(5)); hbox套三按钮.add(buttonc); hbox套三按钮.add(hbox套三按钮.createHorizontalStrut(5)); hbox套三按钮.add(buttonz); hbox套三按钮.add(hbox套三按钮.createHorizontalStrut(10));   //组装左边的大框 jpanel3.add(jpanel1,BorderLayout.NORTH); jpanel3.add(jpanel2,BorderLayout.CENTER);    //组装右边的大框 jpanel4.add(area4,BorderLayout.NORTH); jpanel4.add(area5,BorderLayout.CENTER); jpanel4.add(hbox套三按钮,BorderLayout.SOUTH);     }  void 启动(){        组装布局();//组装组件JSplitpane jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jpanel3,jpanel4);frame.setResizable(false);frame.add(jSplitPane);///添加最终窗格,他是分裂的frame.setBounds(350,350,832,400);//frame.pack();frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

myfocus.java

import java.awt.event.FocusEvent;import java.awt.event.FocusListener; class myfocus implements FocusListener{计算器 计算器;public myfocus(计算器 计算器) {super();this.计算器 = 计算器;}@Overridepublic void focusGained(FocusEvent e) {if(计算器.area1.getName().equals(e.getComponent().getName())) {计算器.area1.setName(“框一”;计算器.area3.setName("3");}else if(计算器.area3.getName().equals(e.getComponent().getName())) {计算器.area3.setName(“框三”);计算器.area1.setName("1");}} @Overridepublic void focusLost(FocusEvent e) {}}

button小数点.java

import java.awt.event.ActionEvent;import java.awt.event.ActionListener; public class button小数点 implements ActionListener {计算器 计算器;public button小数点(计算器 计算器) {super();this.计算器 = 计算器;}@Overridepublic void actionPerformed(ActionEvent e) {//String buttonname =e.getActionCommand(); //double n=Double.parseDouble(计算器.area1.getText());//String content =计算器.area1.getText();if(计算器.area1.getName().equals(“框一”){String content = 计算器.area1.getText();if(content.equals(null)); if(content.contains(".")) ;else {计算器.area1.setText(content+".");}}if(计算器.area3.getName().equals(“框三”){String content =计算器.area3.getText();if(content.equals(null)); if(content.contains(".")) ;else {计算器.area3.setText(content+".");}}}}

数字listennerbutton.java

import java.awt.Color;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import java.awt.event.FocusListener; import javax.swing.JComponent;import javax.swing.JTextArea; import org.w3c.dom.Text; import com.sun.source.tree.CatchTree; public class 数字listennerbutton implements ActionListener {计算器 计算器;public 数字listennerbutton(计算器 计算器) {super();this.计算器 = 计算器;} @Overridepublic void actionPerformed(ActionEvent e) {if(计算器.area1.getName().equals(“框一”) {String s1 = 计算器.area1.getText();计算器.area1.setText(s1+e.getActionCommand());}if(计算器.area3.getName().equals(“框三”) {String s1 = 计算器.area3.getText();计算器.area3.setText(s1+e.getActionCommand());}}}                 

其他三个button.java

import java.awt.event.ActionEvent;import java.awt.event.ActionListener; class 其他三个button implements ActionListener{计算器 计算器;public 其他三个button(计算器 计算器) {super();this.计算器 = 计算器;}@Overridepublic void actionPerformed(ActionEvent e) {try {String text5=计算器.area5.getText();String oper0=e.getActionCommand();if(oper0.equals(计算器.button清空.getName())) {计算器.area1.setText("");计算器.area2.setText("");计算器.area3.setText("");}else if(oper0.equals(计算器.button退格.getName())) {if(计算器.area1.getName().equals(“框一”){String s=计算器.area1.getText();if(s!=null) {String ss=s.substring(0, s.length()-1);计算器.area1.setText(ss);}else {}}else if(计算器.area3.getName().equals(“框三”){String s=计算器.area3.getText();if(s!=null) {String ss=s.substring(0, s.length()-1);计算器.area3.setText(ss);}else {}}/等号很多事情else if(oper0.equals(计算器.button等于.getName())){if(计算器.area1!=null && 计算器.area3!=null && 计算器.area3!=null && 计算器.area2!=null) {String oper1=计算器.area2.getText();double sum=0;double n=Double.parseDouble(计算器.area1.getText());double m=Double.parseDouble(计算器.area3.getText());switch(oper1) {case  "+" : sum=n+m; break; case  "-" : sum=n-m; break; case  "*": sum=n*m; break;  case "/": sum=n/m; break;}计算器.area4.setText“+”=”+sum);String result=n+“+oper1+”+m+"="+sum;计算器.area5.setText(text5+""+result+"\n");}  }}catch (Exception e2) {// TODO: handle exception}}}  

另外两个button.java

import java.awt.event.ActionEvent;import java.awt.event.ActionListener; class 另外两个button implements ActionListener{计算器 计算器;public button其他2(计算器 计算器) {super();this.计算器 = 计算器;}@Overridepublic void actionPerformed(ActionEvent e) {try {String buttonname =e.getActionCommand(); if(计算器.area1.getName().equals(“框一”){ if(计算器.area1!=null) { double sum = 0; double n=Double.parseDouble(计算器.area1.getText()); switch(buttonname) { case  "1/x" : sum=1/n; break; case  "+/-" : sum=-n; break; case  "sqrt": sum=Math.sqrt(n); break;  } 计算器.area1.setText(""+sum); } }else if(计算器.area3.getName().equals(“框三”){if(计算器.area3!=null) { double sum = 0; double n=Double.parseDouble(计算器.area3.getText()); switch(buttonname) { case  "1/x" : sum=1/n; break; case  "+/-" : sum=-n; break; case  "sqrt": sum=Math.sqrt(n); break;  } 计算器.area3.setText(""+sum);}}}catch (Exception ee) {}   }} 

其他一个button.java

import java.awt.event.ActionEvent;import java.awt.event.ActionListener; class 其他一个button implements ActionListener{计算器 计算器;public 其他一个button(计算器 计算器) {super();this.计算器 = 计算器;}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub计算器.area2.setText(e.getActionCommand());}}

buttonaczlistenner.java

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException; import javax.swing.JOptionPane; public class buttonaczlistenner implements ActionListener {计算器 计算器;public buttonaczlistenner(计算器 计算器) {super();this.计算器 = 计算器;}save save = new save();@Overridepublic void actionPerformed(ActionEvent e) {String name=e.getActionCommand();if(name.equals(保存) {try {save.f(计算器.area5.getText());JOptionPane.showMessageDialog(null, “成功保存”);  } catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}else if(name.equals(复制) {计算器.area5.copy();JOptionPane.showMessageDialog(null, “成功复制”);}else if(name.equals(“清除”) {计算器.area4.setText("");计算器.area5.setText("");JOptionPane.showMessageDialog(null, “清除成功”);}}} class save{ void f(String s) throws IOException { FileWriter fw = new FileWriter("data.txt",true); BufferedWriter bfw =new BufferedWriter(fw); bfw.write(s+"\n"); bfw.close(); }}