科学计算器程序Java代码_第1页
科学计算器程序Java代码_第2页
科学计算器程序Java代码_第3页
科学计算器程序Java代码_第4页
科学计算器程序Java代码_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文档功能举例:源程序如下:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.DecimalFormat;import javax.swing.BorderFactory;import javax.swing.Button

2、Group;import javax.swing.JButton;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JRadioButtonMenuItem;import javax.swing.JTextField;public class Calucator ext

3、ends JFrame private JTextField tf ;private JPanel panel1 , panel2 , panel3 , panel4 ;privateJMenuBar myBar;privateJMenu menu1, menu2menu3privateJMenuItem editItem1,editItem2,help1 ,privateJRadioButtonMenuItemseeItem1,seeItem2privateJCheckBoxMenuItem seeItem3 ; /复选框privateButtonGroup bgb;privateStrin

4、g back;privateboolean IfResult =true , flag=false ;privateString oper =;privatedouble result = 0;privateNum numActionListener;privateDecimalFormat df;publicCalucator()super (科学计算器);/设置标题栏help2 , help3 ;/单选框df = new DecimalFormat( #.# ); / 保留四位小数panel1 =panel2 =panel3 =panel4 =new JPanel( new JPanel(

5、 new JPanel( new JPanel(this .setLayout( new BorderLayout(10, 5);new GridLayout(1, 3, 10, 10);new GridLayout(5, 6, 5, 5);115 行6列new GridLayout(5, 1,5, 5);new BorderLayout(5, 5);/*菜单栏*/myBar =menu1 =menu2=menu3=new JMenuBar();new JMenu(编辑(E);new JMenu(查看(V);new JMenu(帮助(H);menu1.setFont(menu2setFont(

6、menu3setFont(new Font( new Font( new Font(宋体,Font.宋体,Font.宋体,Font.PLAIN 12);PLAIN 12);PLAIN 12);文案大全/*编辑栏*/editltemleditItem2new JMenuItem(复制(C) Ctrl+C);new JMenuItem(粘贴(P) Ctrl+V);editItem1 .setFont( new Font(宋体,Font. PLAIN12);editItem2 .setFont( new Font(宋体,Font. PLAIN12);* 查看栏* /seelteml = new JR

7、adioButtonMenuItem(科学型(T);seeItem2 = new JRadioButtonMenuItem(标准型(S);seeItem3 = new JCheckBoxMenuItem(数字分组(I);seelteml .setFont( new Font(宋体,Font. PLAIN12);seeItem2 .setFont( new Font(宋体,Font. PLAIN12); seeItem3 .setFont( new Font(宋体,Font. PLAIN12);/* 帮助栏* /helpl = new JMenuItem(帮助主题(H);help2 = new

8、JMenuItem(关于计算器(A);help1 .setFont( new Font(宋体,Font. PLAIN12); help2 .setFont( new Font(宋体,Font. PLAIN12);bgb = new ButtonGroup(); / 选项组menu1.add( editItem1 );menu1.add( editItem2 );menu2add( seeItem1 );menu2add( seeItem2 );menu2addSeparator(); / 添加一条分割线menu2add( seeItem3 );menu3add( help1 );menu3ad

9、dSeparator(); / 添加一条分割线menu3add( help2 );myBar.add( menu1);myBar.add( menu2);myBar.add( menu3);this .setJMenuBar( myBar);numActionListener = new Num(); / 实现数字监听/*文本域,即为计算器的屏幕显示区域*/tf = new JTextField();tf .setEditable( false ); /文本区域不可编辑tf .setBackground(Color. white ); / 文本区域的背景色tf .setHorizontalAl

10、ignment(JTextField.RIGHT 文字右对齐tf .setText( 0);tf .setBorder(BorderFactory. createLoweredBevelBorder ();init(); /对计算器进行初始化/*初始化操作 添加按钮*/private void init()addButton( panel1 ,addButton( panel1 ,addButton( panel1 ,Backspace , new Clear(), Color.redCE, new Clear(), Color.red);C, new Clear(), Color.red);

11、addButton( panel2 ,1/x , new Signs(), Color.magenta);addButton( panel2 ,log , new Signs(), Color.magenta);addButton( panel2 ,7 , numActionListener , Color. blue);addButton( panel2 ,8 , numActionListener , Color. blue);addButton( panel2 ,9 , numActionListener , Color. blue);addButton( panel2 ,+ , new

12、 Signs(), Color.red);addButton( panel2 ,n! , new Signs(), Color.magent;addButton( panel2 ,sqrt , new Signs(), Color.magenta;addButton( panel2 ,4 , numActionListener , Color. blue);addButton( panel2 ,5 , numActionListener , Color. blue);addButton( panel2 ,6 , numActionListener , Color. blue);addButto

13、n( panel2 ,x , new Signs(), Color.red);addButton( panel2 ,sin , new Signs(), Color.magenta);addButton( panel2 ,xA2 , new Signs(), Color.magenta);addButton( panel2 ,1, numActionListener , Color. blue);addButton( panel2 ,2 , numActionListener , Color. blue);addButton( panel2 ,3 , numActionListener , C

14、olor. blue);addButton( panel2 ,-,new Signs(), Color.red);addButton( panel2 ,cos , new Signs(), Color.magenta);addButton( panel2 ,xA3 , new Signs(), Color.magenta);addButton( panel2 ,0 , numActionListener , Color. blue);addButton(panel2 ,-/+”,new Clear(), Color.blue);addButton(panel2 ,.new Dot(), Col

15、or.blue);addButton(panel2 ,+,new Signs(), Color.red);addButton(panel2 ,tan,new Signs(), Color.magenta);addButton(panel2 ,%,new Signs(), Color.magenta*;addButton(panel2 ,兀numActionListener,Color.orange);addButton(panel2 ,e,numActionListener,Color. orange);addButton(panel2 ,new Signs(), Color. orange)

16、;addButton(panel2 ,new Signs(), Color.red);JButton btns = new JButton(计算器); btns.setBorder(BorderFactory. createLoweredBevelBorder (); btns.setEnabled( false ); / 按钮不可操作 btns.setPreferredSize( new Dimension(20, 20);panel3 .add(btns); / 加入按钮addButton( panel3 ,MC, null , Color.red);addButton( panel3 ,

17、MR, null , Color.red);addButton( panel3 ,MS, null , Color.red);addButton( panel3 ,M+, null , Color.red);panel4 .add( panel1 , BorderLayout.NORT)Hpanel4 .add( panel2 , BorderLayout.CENTE)Rthis .add( tf , BorderLayout. NORTHthis .add( panel3 , BorderLayout. WESTthis .add( panel4 );pack();this .setResi

18、zable( false ); / 窗口不可改变大小this .setLocation(300, 200);this .setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE/* 统一设置按钮的的使用方式* parampanel* paramname* paramaction* paramcolor* /private void addButton(JPanel panel, String name, ActionListener action, Color color)JButton bt = new JButton(name);panel.add(bt

19、); /在面板上增加按钮bt.setForeground(color); /设置前景(字体)颜色/*bt.addActionListener(action); / 增加监听事件计算器的基础操作(+ - x +) paramx*/ private void getResult ( double x)if (oper=+) result += x;else if(oper = - ) result -= x;else if(oper = x ) result *= x;else if(oper = + ) result /= x;else if(oper = = ) result = x;tf .

20、setText( df .format( result );/*运算符号的事件监听*/class Signs implements ActionListenerpublic void actionPerformed(ActionEvent e) /* 用 ActionEvent 对象的 getActionCommand()方法* 取得与引发事件对象相关的字符串* /String str = e.getActionCommand();/* sqrt求平方根*/if (str.equals( sqrt )double i = Double. parseDouble( tf .getText();i

21、f (i=0)/* String.valueOf() 转换为字符串* df.format()按要求保留四位小数* Math.sqrt()求算数平方根* /tf .setText(String. valueOf (df .format(Math. sqrt (i); else tf .setText(负数不能开平方根”);/* log求常用对数*/ else if (str.equals( log )double i = Double.parseDouble( tf .getText();if (i0)tf .setText(String. valueOf (df .format(Math. l

22、og (i);else tf .setText(负数不能求对数);/* %求百分比*/else if (str.equals( %)tf .setText( df .format(Double. parseDouble(tf .getText() / 100);/* 1/x求倒数*/else if (str.equals( 1/x )if (Double. parseDouble(tf .getText() = 0)tf .setText(除数不能为零);else tf .setText( df .format。/ Double. parseDouble( tf .getText();/* s

23、in 求正弦函数*/else if (str.equals( sin )double i = Double.parseDouble( tf .getText();tf .setText(String. valueOf (df .format(Math. sin (i);/* cos求余弦函数*/else if (str.equals( cos )double i = Double.parseDouble( tf .getText();tf .setText(String. valueOf (df .format(Math.cos(i);/* tan求正切函数*/else if (str.equ

24、als( tan )double i = Double.parseDouble( tf .getText();tf .setText(String. valueOf (df .format(Math. tan (i);/* n!求阶乘*/else if (str.equals( n! )double i = Double.parseDouble( tf .getText();if (i%2=0)|(i%2=1)/判断为整数放进行阶乘操作int j = ( int )i; /强制类型转换int result=1;for (int k=1;k 0)if (tf .getText().length() 1)tf .setText( tf .getText().substring(0, tf .getText().length() -1);/使用退格删除最后一位字符else tf .setText( 0); IfResult = true ;else if (tf .getText().length() 2)tf .setText(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论