java吕磊课程设计计算器3科学计算器.docx

上传人:b****3 文档编号:5331940 上传时间:2022-12-15 格式:DOCX 页数:69 大小:41.01KB
下载 相关 举报
java吕磊课程设计计算器3科学计算器.docx_第1页
第1页 / 共69页
java吕磊课程设计计算器3科学计算器.docx_第2页
第2页 / 共69页
java吕磊课程设计计算器3科学计算器.docx_第3页
第3页 / 共69页
java吕磊课程设计计算器3科学计算器.docx_第4页
第4页 / 共69页
java吕磊课程设计计算器3科学计算器.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

java吕磊课程设计计算器3科学计算器.docx

《java吕磊课程设计计算器3科学计算器.docx》由会员分享,可在线阅读,更多相关《java吕磊课程设计计算器3科学计算器.docx(69页珍藏版)》请在冰豆网上搜索。

java吕磊课程设计计算器3科学计算器.docx

java吕磊课程设计计算器3科学计算器

importjavax.swing.*;//把javax包里面的swing包里面的所有东西引进来

importjava.awt.*;//导入awt包里的所有java类

importjava.awt.event.*;//导入包event

importjava.text.DecimalFormat;//处理文本、日期、数字和消息的类和接口

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

importjava.util.Date;

importjava.util.GregorianCalendar;

importjava.awt.BasicStroke;

importjava.awt.BorderLayout;

importjava.awt.Color;

importjava.awt.Dimension;

importjava.awt.Font;

importjava.awt.Graphics;

importjava.awt.Graphics2D;

importjava.awt.GridLayout;

importjava.awt.Image;

importjava.awt.Toolkit;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.geom.Ellipse2D;

importjava.awt.geom.Line2D;

importjava.awt.geom.Point2D;

 

publicclassbiaozhunjisuanqiextendsJFrameimplementsActionListener{//public代表该类公有

//class声明一个类

//biaozhunjisuanqi为类名

//extends是继承类

//implements代表实现接口

//窗体名称biaozhunjisuanqi继承JFrame类和ActionListener接口,并实现publicvoidactionPerformed(ActionEvente){}方法

privatestaticfinallongserialVersionUID=1L;//serialVersionUID相当于java类的身份证,默认为1L,serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性

privateJPaneljContentPane=null;//创建面板对象,null代表为这些变量赋初值为空,即不分配内存空间,变量不指向任何地址。

private是访问控制符,代表这些变量的访问级别为私有,私有级别只能在当前类中进行访问,这些(JPanel、JTextArea、JPanel、JButton)是java中AWT(包)中的类,用能进行桌面级应用程序的开发,就像平时用的word,上面有各种文本框,菜单栏,工具栏按钮等等,这些都是对象

privateJPaneljPanel=null;//JPanel作为一个容器,可以包容一些组件,然后将这个JPanel对象作为一个组件添加到另一个容器(称作父容器)中

privateJButtonjButton=null;//9JButton是用户进行计算时主要的使用工具,一般为其添加actionPerformed事件。

privateJButtonjButton1=null;//(/)

privateJButtonjButton2=null;//(sqrt)

privateJButtonjButton3=null;//(4)

privateJButtonjButton4=null;//(5)

privateJButtonjButton5=null;//(6)

privateJButtonjButton6=null;//(*)

privateJButtonjButton7=null;//(%)

privateJButtonjButton8=null;//

(1)

privateJButtonjButton9=null;//(7)

privateJButtonjButton10=null;//(8)

privateJButtonjButton11=null;//

(2)

privateJButtonjButton12=null;//(3)

privateJButtonjButton13=null;//(-)

privateJButtonjButton14=null;//(1/x)

privateJButtonjButton15=null;//(0)

privateJButtonjButton16=null;//(+/-)

privateJButtonjButton17=null;//(.)

privateJButtonjButton18=null;//(+)

privateJButtonjButton19=null;//(=)

privateJTextFieldjTextField=null;//JTextField是一个的文本框

privateJTextFieldtextMemory=null;//作为输入M用

privateJButtonjButton20=null;//(MC)

privateJButtonjButton21=null;//(MR)

privateJButtonjButton22=null;//(MS)

privateJButtonjButton23=null;//(M+)

privateJButtonjButton24=null;//(Backspace)

privateJButtonjButton25=null;//(CE)

privateJButtonjButton26=null;//(C)

doublememoryd;//使用内存中存储的数字

intmemoryi;

//科学计算器按钮

privateJButtonjButton31=null;//(十六进制)

privateJButtonjButton32=null;//(sin)

privateJButtonjButton33=null;//(cos)

privateJButtonjButton34=null;//(十进制)

privateJButtonjButton35=null;//(tan)

privateJButtonjButton36=null;//(弧度)

privateJButtonjButton37=null;//(八进制)

privateJButtonjButton38=null;//(X^2)

privateJButtonjButton39=null;//(X^3)

privateJButtonjButton40=null;//(二进制)

privateJButtonjButton41=null;//(X^y)

privateJButtonjButton42=null;//(n!

privateJButtonjButton43=null;//(Pi)

privateJButtonjButton44=null;//(ln)

privateJButtonjButton45=null;//(log10)

//A-F

privateJButtonjButton46=null;//(A)

privateJButtonjButton47=null;//(B)

privateJButtonjButton48=null;//(C)

privateJButtonjButton49=null;//(D)

privateJButtonjButton50=null;//(E)

privateJButtonjButton51=null;//(F)

privateJPaneljPanel1=null;

privateJPaneljContentPane1=null;

privateStringstr="";//声明私有字符串变量str

privatedoubledataone;//变量名用来存储运算的数据

privatecharOperator='A';//存放运算符

privatebooleanpointIsTyped=false;//判断输入的数据是否是小数

privateJMenuBarjJMenuBar=null;

privateJMenujMenu=null;//JMenu定义菜单编辑键

privateJMenuItemjMenuItem=null;//JMenuItem菜单中项的实现复制(Ctrl+C)

privateJMenuItemjMenuItem1=null;//粘贴(Ctrl+V)

privateJMenujMenu1=null;//定义查看菜单

privateJMenuItemjMenuItem3=null;//帮助主题

privateJMenuItemjMenuItem4=null;//关于计算器

privateJMenujMenu2=null;//定义帮助菜单

privateJMenuItemjMenuItem5=null;//标准型

privateJMenuItemjMenuItem6=null;//科学型

privateJMenuItemjMenuItem7=null;//勾股定理

privateJMenuItemjMenuItem8=null;//解一元二次方程

DecimalFormatdf;//保留小数位数

privateJButtongetJButton(){//使用privateJButtongetJButton()方法添加按钮并给按钮命名

if(jButton==null){

jButton=newJButton();

jButton.setText("9");

jButton.setFont(newFont("楷体",Font.BOLD,30));//使用jButton.setFont(newFont("楷体",Font.BOLD,30))方法设置按钮的字体

jButton.setForeground(newColor(250,0,0));//使用方法设置按钮的字体颜色红色、绿色和蓝色

jButton.setFocusable(false);

jButton.addActionListener(newActionListener(){//相当于声明了一个实现了ActionListener接口的对象..(因为可以看到其中的方法都被重写实现了.)更多具体细节,可以参考java匿名类的使用,就是把对象jButton注册给事件监听者newActionListener(){PublicvoidactionPerformed(ActionEventae){}}说明一下newActionListener(){PublicvoidactionPerformed(ActionEvent){}}是一个匿名内部类,用来实现对动作事件的处理

publicvoidactionPerformed(ActionEvente){//这是ActionListener中定义的方法,事件监听器,当定义的事件捕获以后就会执行这个方法里面的代码

str+="9";

jTextField.setText(str);//jTextField是api(ApplicationProgramInterface应用程序接口)里面得一个文本主键,要掉用它就要import实现接口,jtextfield文本框...用来建立文本框的,用户可以在文本框输入单行的文本。

在JavaSwing中的加“J”字头的文本输入框包括两种,单行文本输入框(jtextfield)和多行文本输入框(JTextArea)。

}

});

//单击后变色

jButton.addMouseListener(newMouseListener(){//设置数字按钮1到9并添加监控,使其在发生鼠标事件时改变按钮颜色

publicvoidactionPerformed(MouseEvente){//这是MouseListener中定义的方法,java的事件监听器的一个,例如点击按钮、文本框里按下回车,就会调用这个里面的方法。

jButton.setForeground(newColor(0,100,0));//Foreground指前背景色

}

publicvoidmouseClicked(MouseEvente){//鼠标单击方法(鼠标点击后)

jButton.setForeground(newColor(0,150,100));

}

publicvoidmouseEntered(MouseEvente){//鼠标进入组件方法(鼠标进入某个区域后)

jButton.setForeground(newColor(0,0,250));

}

publicvoidmouseExited(MouseEvente){//鼠标退出组件方法(鼠标离开某个区域后)

jButton.setForeground(newColor(250,0,0));

}

publicvoidmousePressed(MouseEvente){//鼠标按键按下后

jButton.setForeground(newColor(0,250,0));

}

publicvoidmouseReleased(MouseEvente){//被按住的鼠标按键释放后

jButton.setForeground(newColor(250,250,0));

}

}

);

}

returnjButton;

}

privateJButtongetJButton1(){//注册按钮

if(jButton1==null){

jButton1=newJButton();//实例化一个对象,给按钮添中符合.

jButton1.setText("/");

jButton1.setFont(newFont("楷体",Font.BOLD,30));

jButton1.setForeground(newColor(0,150,100));

jButton1.addActionListener(newActionListener(){//给jButton1添加一个事件侦听器newActionListener(),当jButton被按下的时候,所需要发生的事情定义在newActionListener()里

publicvoidactionPerformed(ActionEvente){

str=jTextField.getText();

Operator='/';

dataone=Double.parseDouble(str);//表示将转换好的Double类型的数值赋值给dataone类

str="";

jTextField.setText(str);

}

});

}

returnjButton1;

}

privateJButtongetJButton2(){

if(jButton2==null){

jButton2=newJButton("sqrt");//开根号运算,定义jButton2=newJButton("sqrt");对其设置监控,调用Math.sqrt()方法来实现开根号运算,并在文本框中输出结果

jButton2.setFont(newFont("楷体",Font.BOLD,30));//Font字体的意思,楷体,加粗,字体号大小30

jButton2.setForeground(newColor(0,0,200));

jButton2.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

doublea=Double.parseDouble(jTextField.getText());//表示将转换好的Double类型的数值赋值给double类型的变量。

doubleb;

if(a<0){

jTextField.setText("负数不能开平方");

}

else{

b=Math.sqrt(a);

jTextField.setText(Double.toString(b));//Double.toString(next())将这个数double数转化成String类型(字符串)

}

}

});

}

returnjButton2;

}

privateJButtongetJButton3(){

if(jButton3==null){

jButton3=newJButton();

jButton3.setText("4");

jButton3.setFont(newFont("楷体",Font.BOLD,30));

jButton3.setForeground(newColor(250,0,0));

jButton3.setFocusable(false);

jButton3.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

str+="4";

jTextField.setText(str);

}

});

jButton3.addMouseListener(newMouseListener(){

publicvoidactionPerformed(MouseEvente){

jButton3.setForeground(newColor(0,100,0));

}

publicvoidmouseClicked(MouseEvente){

jButton3.setForeground(newColor(0,150,100));

}

publicvoidmouseEntered(MouseEvente){

jButton3.setForeground(newColor(0,0,250));

}

publicvoidmouseExited(MouseEvente){

jButton3.setForeground(newColor(250,0,0));

}

publicvoidmousePressed(MouseEvente){

jButton3.setForeground(newColor(0,250,0));

}

publicvoidmouseReleased(MouseEvente){

jButton3.setForeground(newColor(250,250,0));

}

}

);

}

returnjButton3;

}

privateJButtongetJButton4(){

if(jButton4==null){

jButton4=newJButton();

jButton4.setText("5");

jButton4.setFont(newFont("楷体",Font.BOLD,30));

jButton4.setForeground(newColor(250,0,0));

jButton4.setFocusable(false);

jButton4.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

str+="5";

jTextField.setText(str);

}

});

jButton4.addMouseListener(newMouseListener(){

publicvoidactionPerformed(MouseEvente){

jButton4.setForeground(newColor(0,100,0));

}

publicvoidmouseClicked(MouseEvente){

jButton4.setForeground(newColor(0,150,100));

}

publicvoidmouseEntered(MouseEvente){

jButton4.setForeground(newColor(0,0,250));

}

publicvoidmouseExited(MouseEvente){

jButton4.setForeground(newColor(250,0,0));

}

pu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1