java吕磊课程设计计算器3科学计算器.docx
- 文档编号:5331940
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:69
- 大小:41.01KB
java吕磊课程设计计算器3科学计算器.docx
《java吕磊课程设计计算器3科学计算器.docx》由会员分享,可在线阅读,更多相关《java吕磊课程设计计算器3科学计算器.docx(69页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 计算器 科学