版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE15/NUMPAGES15用java编写的计算器的代码?packagecy_l;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassCalculatorextendsJFrameimplementsActionListener
{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
JFrameframe;
JButtonjia=newJButton("+");
JButtonjian=newJButton("-");
JButtoncheng=newJButton("*");
JButtonchu=newJButton("/");
JButtonqiuyi=newJButton("%");
JButtondeng=newJButton("=");
JButtonfu=newJButton("+/-");
JButtondian=newJButton(".");
JButtonkai=newJButton("sqrt");
JButtondiao=newJButton("1/x");
JButtonaa=newJButton("A");
JButtonbb=newJButton("B");
JButtoncc=newJButton("C");
JButtondd=newJButton("D");
JButtonee=newJButton("E");
JButtonff=newJButton("F");
TextFieldk1=newTextField();
objConversionconvert=newobjConversion();
JMenuItemcopy,paste,s,t,help,about,Team;
JRadioButtonsixteen,ten,eight,two;
JButtonbackspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;
Containercp;
JTextFieldtext;
Stringcopycontent="";
booleanclickable=true,clear=true;
intall=0;
doubleqian;
Stringfuhao;
intjin=10,first=1;
publicCalculator()
{
setTitle("计算器");
setSize(400,300);
setLocation(250,200);
text=newJTextField(25);
//text.setEnabled(false);
text.setText("0");
text.setHorizontalAlignment(JTextField.RIGHT);//从右到左
JPanelcp1=newJPanel();
JPanelcp2=newJPanel();
JPanelcp3=newJPanel();
cp=getContentPane();
cp.add(cp1,"North");
cp.add(cp2,"Center");
cp.add(cp3,"South");
cp1.setLayout(newGridLayout(1,6));
cp2.setLayout(newGridLayout(2,4));
cp3.setLayout(newGridLayout(6,6));
sixteen=newJRadioButton("十六进制");
sixteen.setVisible(false);
ten=newJRadioButton("十进制",true);
ten.setVisible(false);
eight=newJRadioButton("八进制");
eight.setVisible(false);
two=newJRadioButton("二进制");
two.setVisible(false);
sixteen.addActionListener(this);
ten.addActionListener(this);
eight.addActionListener(this);
two.addActionListener(this);
ButtonGroupbtg=newButtonGroup();
btg.add(sixteen);
btg.add(ten);
btg.add(eight);
btg.add(two);
cp1.add(text);
//text.setEnabled(false);
text.setEditable(false);
text.setBackground(newColor(255,255,255));
cp2.add(sixteen);
cp2.add(ten);
cp2.add(eight);
cp2.add(two);
backspace=newJButton("Backspace");
backspace.setForeground(newColor(255,0,0));
backspace.addActionListener(this);
ce=newJButton("CE");
ce.setForeground(newColor(255,0,0));
ce.addActionListener(this);
c=newJButton("C");
c.setForeground(newColor(255,0,0));
c.addActionListener(this);
k1.setVisible(false);
cp2.add(k1);
cp2.add(backspace);
cp2.add(ce);
cp2.add(c);
num0=newJButton("0");
num1=newJButton("1");
num2=newJButt
on("2");
num3=newJButton("3");
num4=newJButton("4");
num5=newJButton("5");
num6=newJButton("6");
num7=newJButton("7");
num8=newJButton("8");
num9=newJButton("9");
cp3.add(num1);
num1.addActionListener(this);
cp3.add(num2);
num2.addActionListener(this);
cp3.add(num3);
num3.addActionListener(this);
///
cp3.add(cheng);
cheng.setForeground(newColor(255,0,0));
cheng.addActionListener(this);
cp3.add(kai);
kai.addActionListener(this);
cp3.add(num4);
num4.addActionListener(this);
cp3.add(num5);
num5.addActionListener(this);
cp3.add(num6);
num6.addActionListener(this);
///
cp3.add(chu);
chu.setForeground(newColor(255,0,0));
chu.addActionListener(this);
cp3.add(qiuyi);
qiuyi.addActionListener(this);
cp3.add(num7);
num7.addActionListener(this);
cp3.add(num8);
num8.addActionListener(this);
cp3.add(num9);
num9.addActionListener(this);
///
cp3.add(jian);
jian.setForeground(newColor(255,0,0));
jian.addActionListener(this);
cp3.add(diao);
diao.addActionListener(this);
cp3.add(num0);
num0.addActionListener(this);
cp3.add(fu);
fu.addActionListener(this);
cp3.add(dian);
dian.addActionListener(this);
cp3.add(jia);
jia.setForeground(newColor(255,0,0));
jia.addActionListener(this);
cp3.add(deng);
deng.setForeground(newColor(255,0,0));
deng.addActionListener(this);
cp3.add(aa);
aa.addActionListener(this);
cp3.add(bb);
bb.addActionListener(this);
cp3.add(cc);
cc.addActionListener(this);
cp3.add(dd);
dd.addActionListener(this);
cp3.add(ee);
ee.addActionListener(this);
cp3.add(ff);
ff.addActionListener(this);
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
///有了这个按钮就能按了
num0.addKeyListener(newMyListener());
num1.addKeyListener(newMyListener());
num2.addKeyListener(newMyListener());
num3.addKeyListener(newMyListener());
num4.addKeyListener(newMyListener());
num5.addKeyListener(newMyListener());
num6.addKeyListener(newMyListener());
num7.addKeyListener(newMyListener());
num8.addKeyListener(newMyListener());
num9.addKeyListener(newMyListener());
jian.addKeyListener(newMyListener());
dian.addKeyListener(newMyListener());
jia.addKeyListener(newMyListener());
cheng.addKeyListener(newMyListener());
chu.addKeyListener(newMyListener());
deng.addKeyListener(newMyListener());
backspace.addKeyListener(newMyListener());
qiuyi.addKeyListener(newMyListener());
aa.addKeyListener(newMyListener());
bb.addKeyListener(newMyListener());
cc.addKeyListener(newMyListener());
ee.addKeyListener(newMyListener());
ff.addKeyListener(newMyListener());
///
JMenuBarmainMenu=newJMen
uBar();
setJMenuBar(mainMenu);
JMenueditMenu=newJMenu("编辑");
JMenuviewMenu=newJMenu("查看");
JMenuhelpMenu=newJMenu("帮助");
mainMenu.add(editMenu);
mainMenu.add(viewMenu);
mainMenu.add(helpMenu);
//////////////////////////////////////////
//mainMenu.add(TeamMenu);
//////////////////////////////////////////
copy=newJMenuItem("复制");
paste=newJMenuItem("粘贴");
KeyStrokecopyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
copy.setAccelerator(copyks);//设置退出菜单选项加上快捷键
KeyStrokepasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
paste.setAccelerator(pasteks);//设置退出菜单选项加上快捷键
editMenu.add(copy);
editMenu.add(paste);
copy.addActionListener(this);
paste.addActionListener(this);
t=newJMenuItem("●标准型");
s=newJMenuItem("科学型");
viewMenu.add(t);
viewMenu.add(s);
t.addActionListener(this);
s.addActionListener(this);
help=newJMenuItem("帮助主题");
about=newJMenuItem("关于计算器");
Team=newJMenuItem("制作人员");
helpMenu.add(help);
helpMenu.add(about);
help.addActionListener(this);
about.addActionListener(this);
helpMenu.add(Team);
Team.addActionListener(this);
addWindowListener(newWindowDestroyer());//结束窗口
}
publicvoidactionPerformed(ActionEvente)
{//响应动作代码
if(first==1)
text.setText("");
first=0;//第一次把文本框0.清空
Objecttemp=e.getSource();
if(temp==copy)
{
copycontent=text.getText();
}
if(temp==paste)
{
text.setText(text.getText()+copycontent);
}
if(temp==t)
{//标准
sixteen.setVisible(false);
ten.setVisible(false);
eight.setVisible(false);
two.setVisible(false);
t.setText("●标准型");
s.setText("科学型");
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
}
if(temp==s)
{//科学
sixteen.setVisible(true);
ten.setVisible(true);
eight.setVisible(true);
two.setVisible(true);
t.setText("标准型");
s.setText("●科学型");
aa.setVisible(true);
bb.setVisible(true);
cc.setVisible(true);
dd.setVisible(true);
ee.setVisible(true);
ff.setVisible(true);
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
}
if(temp==help)
{//打开系统帮助文件要查资料
try
{
StringfilePath="C:/WINDOWS/Help/calc.chm";
Runtime.getRuntime().exec("cmd.exe/c"+filePath);
}
catch(Exceptioneeee)
{
System.out.println("打开系统的计算器出错");
}
}
//说明小组成员和计算器版本!!!
if(temp==about)
{
JOptionPane.showMessageDialog(frame,"这是我们小组的计算器"+
"版本3.0","版本",http://./doc/b4c2dfebf8c75fbfc77db2e1.htmlRMATION_MESSAGE);
}
if(temp==Team)
{{
JOptionPane.showMessageDialog(frame,"制作人员:林财源,梁秀娟,王启俊,郑荣伟(名字按字母开头排序)","制作人员",http://./doc/b4c2dfebf8c75fbfc77db2e1.htmlRMATION_MESSAGE);
}
try
{
}
catch(Exceptioneeee)
{
System.out.println("打开出错");
}
}
try
{
if(temp==sixteen)
{
Stringhex=text.getText();
intinthex=Integer.parseInt(hex,jin);//先把数变为10进制
text.setText(convert.decHex(inthex));
jin=16;
aa.setEnabled(true);
bb.setEnabled(true);
cc.setEnabled(true);
dd.setEnabled(true);
ee.setEnabled(true);
ff.setEnabled(true);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
if(temp==eight)
{
Stringoct=text.getText();
intintoct=Integer.parseInt(oct,jin);
text.setText(convert.decOct(intoct));
jin=8;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==two)
{
Stringbin=text.getText();
intintbin=Integer.parseInt(bin,jin);
text.setText(convert.decBin(intbin));
jin=2;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(false);
num3.setEnabled(false);
num4.setEnabled(false);
num5.setEnabled(false);
num6.setEnabled(false);
num7.setEnabled(false);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==ten)
{
Stringdec=text.getText();
intintdec=Integer.parseInt(dec,jin);
//text.setText(convert.decDec(intdec));//本句会把123变成321
text.setText(intdec+"");
jin=10;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
}
catch(Exceptionee)
{
System.out.println("转换出错,可能你没有输入任何字符");
text.setText("转换出错");
clear=false;
}
if(temp==backspace)
{//退格
Strings=text
.getText();
text.setText("");
for(inti=0;i15)
{
currentNum=decNum%16;
decNum/=16;
}
else
{
currentNum=decNum;
decNum=0;
}
switch(currentNum)
{
case15:strHexNum+="F";
break;
case14:strHexNum+="E";
break;
case13:strHexNum+="D";
break;
case12:strHexNum+="C";
break;
case11:strHexNum+="B";
break;
case10:strHexNum+="A";
break;
default:strHexNum+=Integer.toString(currentNum);
break;
}
}
returninvert(strHexNum,2);
}
publicStringdecOct(intdecNum)
{//10to8
StringstrOctNum="";
while(decNum!=0)
{
if(decNum>7)
{
strOctNum+=Integer.toString(decNum%8);
decNum/=8;
}
else
{
strOctNum+=Integer.toString(decNum);
decNum=0;
}
}
returninvert(strOctNum,3);
}
publicStringdecBin(intdecNum)
{//10to2
StringstrBinNum="";
while(decNum!=0)
{
if(decNum>1)
{
strBinNum+=Integer.toString(decNum%2);
decNum/=2;
}
else
{
strBinNum+=Integer.toString(decNum);
decNum=0;
}
}
returninvert(strBinNum,8);
}
privateStringinvert(StringstrNum,intminLength)//转换长度
{
Stringanswer="";
intlength=strNum.length();
if(length0;padding--)
{
answer+="0";
}
}
for(inti=length;i>0;i--)
{
answer+=strNum.charAt(i-1);
}
returnanswer;
}
}
publicstaticvoidmain(Stringarg[])//产生窗口
{
Calculatorwin=newCalculator();
win.setVisible(true);
}
/*************键盘事件************/
publicclassMyListenerextendsKeyAdapter
{
publicvoidkeyPressed(KeyEvente){
//TODO自动生成方法存根
//从键盘读入数字
if(e.getKeyChar()=='0'){
num0.doClick();
}
if(e.getKeyChar()=='1'){
num1.doClick();
}
if(e.getKeyChar()=='2'){
num2.doClick();
}
if(e.getKeyChar()=='3'){
num3.doClick();
}
if(e.getKeyChar()=='4'){
num4.doClick();/r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度知识产权质押委托贷款合同3篇
- 2024年贵州工业职业技术学院高职单招语文历年参考题库含答案解析
- 2025年华师大版八年级科学上册阶段测试试卷
- 二零二五版人工智能医疗诊断系统研发与应用合同3篇
- 2025年人教版(2024)选修4地理下册阶段测试试卷
- 2025年度二零二五年度个人小额贷款担保合同范本2篇
- 2025年岳麓版必修1英语下册阶段测试试卷含答案
- 二零二五年度高端制造业劳务派遣与工艺改进合同3篇
- 2025年度项目部人员合同协议书:新能源项目人员招聘及培训协议2篇
- 2024年财务内控优化服务合同
- Unity3D游戏开发PPT完整全套教学课件
- 玻璃安装应急预案
- 道德与法治中考一轮总复习课件 课时8 走向未来的少年 (九下第三单元)
- 五十音图+あ行+课件【高效备课精研+知识精讲提升】 初中日语人教版第一册
- 工程影像记录表
- 责任成本分析模板
- 医疗安全隐患排查登记表
- 现场制氮作业方案及技术措施
- JJG(建材) 107-1999 透气法比表面积仪检定规程-(高清现行)
- 员工入职登记表(标准模版)
- 柴油发电机施工方案33709
评论
0/150
提交评论