Java大实验.docx
- 文档编号:3573347
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:16
- 大小:39KB
Java大实验.docx
《Java大实验.docx》由会员分享,可在线阅读,更多相关《Java大实验.docx(16页珍藏版)》请在冰豆网上搜索。
Java大实验
班级软工二班姓名张睿学号123012009053
Java计算器实验
一,实验环境
装有WindowsXP系统的电脑
二,实验目的
完成一个计算器类,实现简单的继承和响应用户的选择,进行简单的用户交互,实现用户图形界面。
三,实验源代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
/**********************Java计算器主类*********************/
publicclassSunnyCalculatorimplementsActionListener{
JFramef;
JMenumEdit;
JMenumView;
JMenumHelp;
JMenuItemmCopy;
JMenuItemmPaste;
JTextFieldtResult;
JButtonbNumber;
JButtonbOperator;
JButtonbOther;
JButtonbM;
booleanisDouble=false;//是否为实数
intopFlag=-1;
staticdoublet1=0,t2=0,t3=0,result=0;
staticintopflag1=-1,opflag2=-1,flag=0,resflag=1;
intpreOp,currentOp=0;//标准位
doubleop1=0,op2=0;//操作数
doublen3;
StringBufferbuf=newStringBuffer(20);
StringBuffercopyBoard=newStringBuffer(20);//剪贴板
StringBuffermemory=newStringBuffer(20);//M系列
StringBufferstr=newStringBuffer();
//Java计算器构造器
publicSunnyCalculator()
{
f=newJFrame("Sunny计算器_");
ContainercontentPane=f.getContentPane();
/**************************Java计算器菜单的创建*****************************/
JMenuBarmBar=newJMenuBar();
mBar.setOpaque(true);
mEdit=newJMenu("编辑(E)");
mEdit.setMnemonic(KeyEvent.VK_E);
mCopy=newJMenuItem("复制(C)");
mEdit.add(mCopy);
mPaste=newJMenuItem("粘贴(P)");
mEdit.add(mPaste);
mView=newJMenu("查看(V)");
mView.setMnemonic(KeyEvent.VK_V);
mView.add(newJMenuItem("标准型"));
mView.add(newJMenuItem("科学型"));
mView.addSeparator();
mView.add(newJMenuItem("查看分组"));
mHelp=newJMenu("帮助(H)");
mHelp.setMnemonic(KeyEvent.VK_H);
mHelp.add(newJMenuItem("帮助主题"));
mHelp.addSeparator();
mHelp.add(newJMenuItem("关于计算器"));
mBar.add(mEdit);
mBar.add(mView);
mBar.add(mHelp);
f.setJMenuBar(mBar);
contentPane.setLayout(newBorderLayout());
JPanelpTop=newJPanel();
tResult=newJTextField("0.",26);
tResult.setHorizontalAlignment(JTextField.RIGHT);
tResult.setEditable(false);
pTop.add(tResult);
contentPane.add(pTop,BorderLayout.NORTH);
JPanelpBottom=newJPanel();
pBottom.setLayout(newBorderLayout());
JPanelpLeft=newJPanel();
pLeft.setLayout(newGridLayout(5,1,3,3));
bM=newJButton("");
bM.setEnabled(false);
pLeft.add(bM);
/*************************Java计算器功能键定义***************************/
bOther=newJButton("MC");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(newInsets(3,2,3,2));
pLeft.add(bOther);
bOther=newJButton("MR");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(newInsets(3,2,3,2));
pLeft.add(bOther);
bOther=newJButton("MS");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(newInsets(3,2,3,2));
pLeft.add(bOther);
bOther=newJButton("M+");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(newInsets(3,2,3,2));
pLeft.add(bOther);
pBottom.add(pLeft,BorderLayout.WEST);
JPanelpRight=newJPanel();
pRight.setLayout(newBorderLayout());
JPanelpUp=newJPanel();
pUp.setLayout(newGridLayout(1,3,3,0));
bOther=newJButton("BackSpace");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
bOther.setMargin(newInsets(3,0,3,5));
pUp.add(bOther);
bOther=newJButton("CE");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
pUp.add(bOther);
bOther=newJButton("C");
bOther.addActionListener(this);
bOther.setForeground(Color.red);
pUp.add(bOther);
/***************************Java计算器数字键盘区定义**************************/
JPanelpDown=newJPanel();
pDown.setLayout(newGridLayout(4,5,3,2));
bNumber=newJButton("7");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bNumber=newJButton("8");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bNumber=newJButton("9");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bOperator=newJButton("/");
bOperator.setForeground(Color.red);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,0,3,0));
pDown.add(bOperator);
bOperator=newJButton("sqrt");
bOperator.addActionListener(this);
bOperator.setForeground(Color.red);
bOperator.setMargin(newInsets(3,0,3,0));
pDown.add(bOperator);
bNumber=newJButton("4");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
bNumber.setHorizontalTextPosition(JButton.LEFT);
pDown.add(bNumber);
bNumber=newJButton("5");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bNumber=newJButton("6");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bOperator=newJButton("*");
bOperator.setForeground(Color.red);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,3,3,3));
pDown.add(bOperator);
bOperator=newJButton("%");
bOperator.setForeground(Color.blue);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,3,3,3));
pDown.add(bOperator);
bNumber=newJButton("1");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bNumber=newJButton("2");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bNumber=newJButton("3");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bOperator=newJButton("-");
bOperator.setForeground(Color.red);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,3,3,3));
pDown.add(bOperator);
bOperator=newJButton("1/x");
bOperator.setForeground(Color.blue);
bOperator.addActionListener(this);
pDown.add(bOperator);
bNumber=newJButton("0");
bNumber.setForeground(Color.blue);
bNumber.addActionListener(this);
bNumber.setMargin(newInsets(3,3,3,3));
pDown.add(bNumber);
bOperator=newJButton("+/-");
bOperator.setForeground(Color.blue);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,3,3,3));
pDown.add(bOperator);
bOperator=newJButton(".");
bOperator.setForeground(Color.blue);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,3,3,3));
pDown.add(bOperator);
bOperator=newJButton("+");
bOperator.setForeground(Color.blue);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,3,3,3));
pDown.add(bOperator);
bOperator=newJButton("=");
bOperator.setForeground(Color.blue);
bOperator.addActionListener(this);
bOperator.setMargin(newInsets(3,3,3,3));
pDown.add(bOperator);
pRight.add(pUp,BorderLayout.NORTH);
pRight.add(pDown,BorderLayout.SOUTH);
pBottom.add(pRight,BorderLayout.EAST);
contentPane.add(pBottom,BorderLayout.SOUTH);
f.setSize(newDimension(320,256));
f.setResizable(false);
f.setVisible(true);
f.addWindowListener(newWindowAdapter()
{
publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
}
);
}
/************************Java计算器计算方法区***************************/
publicvoidactionPerformed(ActionEvente)
{
Strings=e.getActionCommand();
if(s.equals("复制(C)"))
{
Stringtemp=tResult.getText().trim();
copyBoard.replace(0,copyBoard.length(),temp);
mPaste.setEnabled(true);
}
elseif(s.equals("粘贴(p)"))
{
tResult.setText(copyBoard.toString());
}
elseif(s.equals("CE"))
{
//如果是CE则清除文本框
tResult.setText("0.");
}
elseif(s.equals("BackSpace"))
{
if(!
tResult.getText().trim().equals("0."))
{
//如果文本框中有内容
if(str.length()!
=1&&str.length()!
=0)
{
tResult.setText(str.delete(str.length()-1,str.length()).toString());
}
else
{
tResult.setTex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验