用java编写的计算器的代码_第1页
用java编写的计算器的代码_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论