版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桦川县2024-2025学年三年级数学第一学期期末统考模拟试题含解析
- 强夯施工组织设计
- 贵州招标投标公共服务平台
- 心电图基础知识
- 淮南市潘集区2024年数学六年级第一学期期末教学质量检测试题含解析
- 2024年新人教版七年级上册数学教学课件 1.2.1 有理数的概念
- 员工绩效管理中的SCM系统应用研究
- 部编版二年级语文上册《望庐山瀑布》教学课件2篇2
- 课件专题教学课件
- 幼儿园大班语言课件教学
- 电力建设安全工作规程 第2部分:电力线路
- 建筑改造工程包工包料合同协议书范本
- 普通高中政治新课程标准检测题(含答案)
- (2024年)BIM基础知识培训课件
- 中医儿科病证
- 井下作业工:高级井下作业工题库
- AltiumDesigner电路与PCB设计智慧树知到期末考试答案2024年
- 5G网络安全协议及关键技术研究
- 质量管理体系的智能化与数字化转型
- 体育教师健康教育培训
- 汽车式起重机验收表格
评论
0/150
提交评论