南邮JAVA实验2Word格式文档下载.docx

上传人:b****6 文档编号:19805834 上传时间:2023-01-10 格式:DOCX 页数:12 大小:50.11KB
下载 相关 举报
南邮JAVA实验2Word格式文档下载.docx_第1页
第1页 / 共12页
南邮JAVA实验2Word格式文档下载.docx_第2页
第2页 / 共12页
南邮JAVA实验2Word格式文档下载.docx_第3页
第3页 / 共12页
南邮JAVA实验2Word格式文档下载.docx_第4页
第4页 / 共12页
南邮JAVA实验2Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

南邮JAVA实验2Word格式文档下载.docx

《南邮JAVA实验2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《南邮JAVA实验2Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

南邮JAVA实验2Word格式文档下载.docx

importjavax.swing.border.BevelBorder;

importjava.awt.*;

importjava.awt.datatransfer.DataFlavor;

importjava.awt.datatransfer.Transferable;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.InputEvent;

importjava.awt.event.KeyEvent;

publicclassCalculatorextendsJFrameimplementsActionListener{

privateJMenuBarmenuBar=newJMenuBar();

privateJMenumenuEdit=newJMenu("

编辑(E)"

);

privateJMenuItemmenuItemCopy=newJMenuItem("

复制(C)"

KeyEvent.VK_C);

privateJMenuItemmenuItemCut=newJMenuItem("

粘贴(P)"

KeyEvent.VK_V);

privateJMenumenuView=newJMenu("

查看(V)"

privateJRadioButtonboxStand=newJRadioButton("

标准型(T)"

true);

privateJRadioButtonboxSience=newJRadioButton("

科学型(S)"

false);

privateJMenuItemmenuItemMath=newJMenuItem("

数学分组"

KeyEvent.VK_I);

privateJMenumenuHelp=newJMenu("

帮助(H)"

privateJMenuItemmenuItemHelp=newJMenuItem("

帮助主题"

KeyEvent.VK_H);

privateJMenuItemmenuItemAbout=newJMenuItem("

关于计算器"

KeyEvent.VK_A);

privateJPanelpanSave=newJPanel();

privateJPanelpanClear=newJPanel();

privateJPanelpanBtn=newJPanel();

privateJTextFieldmsg=newJTextField("

0"

privateJButton[]buttons=newJButton[27];

privateJLabellblInfo=newJLabel();

/**

*保存预执行操作的数

*/

privatedoublevalue=0;

*是否已经保存

privatebooleanhasSaved=false;

*保存的数字

privatedoublesaveNum=0;

*运算操作:

0:

无操作。

1:

加。

2:

减。

3:

乘。

4:

除。

privateintoperation=0;

*保存临时数据

privateStringBuffertmp=newStringBuffer();

*文字框允许输入的数字长度

privatestaticfinalintallowLength=32;

privatebooleanhasPressed=false;

*计算器界面类缺省构造函数。

publicCalculator(){

setSize(260,240);

setTitle("

计算器"

Toolkittk=Toolkit.getDefaultToolkit();

setLocation((tk.getScreenSize().width-getWidth())/2,(tk.getScreenSize().height-getHeight())/2);

initMenu();

initButton();

initAdd();

panSave.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_UP,0),"

UpPress"

panSave.getActionMap().put("

newButtonListener());

setResizable(false);

//noinspectionMagicConstant

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

*初始化菜单添加。

privatevoidinitMenu(){

//========菜单添加======================

setJMenuBar(menuBar);

menuBar.add(menuEdit);

menuEdit.setMnemonic(KeyEvent.VK_E);

menuEdit.add(menuItemCopy);

menuItemCopy.setMnemonic(KeyEvent.VK_C);

menuEdit.add(menuItemCut);

menuItemCut.setMnemonic(KeyEvent.VK_P);

menuBar.add(menuView);

menuView.setMnemonic(KeyEvent.VK_V);

ButtonGroupgroup=newButtonGroup();

group.add(boxStand);

group.add(boxSience);

menuView.add(boxStand);

menuView.add(boxSience);

menuView.addSeparator();

menuView.add(menuItemMath);

menuBar.add(menuHelp);

menuHelp.setMnemonic(KeyEvent.VK_H);

menuHelp.add(menuItemHelp);

menuHelp.addSeparator();

menuHelp.add(menuItemAbout);

menuItemCopy.addActionListener(this);

menuItemCut.addActionListener(this);

menuItemAbout.addActionListener(this);

//=========菜单添加OK===================

*初始化按钮。

按钮的初始化、部署、事件添加等。

privatevoidinitButton(){

ButtonListenerlistener=newButtonListener();

buttons[0]=newCalculateButton(listener,"

="

KeyEvent.VK_EQUALS,false);

buttons[1]=newCalculateButton(listener,"

+"

KeyEvent.VK_ADD,false,Color.RED);

buttons[2]=newCalculateButton(listener,"

-"

KeyEvent.VK_SUBTRACT,false,Color.RED);

buttons[3]=newCalculateButton(listener,"

*"

KeyEvent.VK_MULTIPLY,false,Color.RED);

buttons[4]=newCalculateButton(listener,"

/"

KeyEvent.VK_DIVIDE,false,Color.RED);

buttons[5]=newCalculateButton(listener,"

1/x"

KeyEvent.VK_R,false);

buttons[6]=newCalculateButton(listener,"

+/-"

KeyEvent.VK_F9,false);

buttons[7]=newCalculateButton(listener,"

sqrt"

buttons[8]=newCalculateButton(listener,"

%"

'

%'

buttons[9]=newCalculateButton(listener,"

."

KeyEvent.VK_PERIOD,false);

buttons[10]=newCalculateButton(listener,"

KeyEvent.VK_0,false);

buttons[11]=newCalculateButton(listener,"

1"

KeyEvent.VK_1,false);

buttons[12]=newCalculateButton(listener,"

2"

KeyEvent.VK_2,false);

buttons[13]=newCalculateButton(listener,"

3"

KeyEvent.VK_3,false);

buttons[14]=newCalculateButton(listener,"

4"

KeyEvent.VK_4,false);

buttons[15]=newCalculateButton(listener,"

5"

KeyEvent.VK_5,false);

buttons[16]=newCalculateButton(listener,"

6"

KeyEvent.VK_6,false);

buttons[17]=newCalculateButton(listener,"

7"

KeyEvent.VK_7,false);

buttons[18]=newCalculateButton(listener,"

8"

KeyEvent.VK_8,false);

buttons[19]=newCalculateButton(listener,"

9"

KeyEvent.VK_9,false);

buttons[20]=newCalculateButton(listener,"

MC"

KeyEvent.VK_L,true,Color.RED);

buttons[21]=newCalculateButton(listener,"

MR"

KeyEvent.VK_R,true,Color.RED);

buttons[22]=newCalculateButton(listener,"

MS"

KeyEvent.VK_M,true,Color.RED);

buttons[23]=newCalculateButton(listener,"

M+"

KeyEvent.VK_P,true,Color.RED);

buttons[24]=newCalculateButton(listener,"

Backspace"

KeyEvent.VK_BACK_SPACE,false,Color.RED,62,25);

buttons[25]=newCalculateButton(listener,"

CE"

KeyEvent.VK_DELETE,false,Color.RED,62,25);

buttons[26]=newCalculateButton(listener,"

C"

KeyEvent.VK_ESCAPE,false,Color.RED,62,25);

*初始化各个容器的添加。

privatevoidinitAdd(){

msg.setSize(240,20);

msg.setLocation(6,4);

msg.setEditable(false);

msg.setBackground(Color.WHITE);

msg.setMargin(newInsets(0,6,0,8));

msg.setHorizontalAlignment(JTextField.RIGHT);

lblInfo.setSize(30,26);

lblInfo.setLocation(8,30);

lblInfo.setBorder(newBevelBorder(BevelBorder.LOWERED));

lblInfo.setHorizontalAlignment(SwingConstants.CENTER);

panSave.setSize(35,150);

panSave.setLocation(6,60);

panSave.setLayout(newFlowLayout(FlowLayout.CENTER,3,3));

//panSave.setBorder(b);

//增加MC、MR、MS、M+

for(inti=20;

i<

24;

i++)

panSave.add(buttons[i]);

panClear.setSize(200,26);

panClear.setLocation(45,30);

//panClear.setBorder(b);

panClear.setLayout(newFlowLayout(FlowLayout.CENTER,3,0));

//增加Backspace、CE、C

for(inti=24;

27;

panClear.add(buttons[i]);

panBtn.setSize(200,150);

panBtn.setLocation(45,60);

//panBtn.setBorder(b);

panBtn.setLayout(newFlowLayout(FlowLayout.CENTER,4,3));

panBtn.add(buttons[17]);

//7

panBtn.add(buttons[18]);

//8

panBtn.add(buttons[19]);

//9

panBtn.add(buttons[4]);

//÷

panBtn.add(buttons[7]);

//sqrt

panBtn.add(buttons[14]);

//4

panBtn.add(buttons[15]);

//5

panBtn.add(buttons[16]);

//6

panBtn.add(buttons[3]);

//×

panBtn.add(buttons[8]);

//%

panBtn.add(buttons[11]);

//1

panBtn.add(buttons[12]);

//2

panBtn.add(buttons[13]);

//3

panBtn.add(buttons[2]);

//-

panBtn.add(buttons[5]);

//1/x

panBtn.add(buttons[10]);

//0

panBtn.add(buttons[6]);

//+/-

panBtn.add(buttons[9]);

//.

panBtn.add(buttons[1]);

//+

panBtn.add(buttons[0]);

//=

setLayout(null);

add(msg);

add(lblInfo);

add(panSave);

add(panClear);

add(panBtn);

publicstaticvoidmain(String[]args){

newCalculator();

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==menuItemCopy){

msg.selectAll();

msg.copy();

if(e.getSource()==menuItemCut){

try{

Transferablet=Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);

if(t!

=null&

&

t.isDataFlavorSupported(DataFlavor.stringFlavor)){

Stringtext=t.getTransferData(DataFlavor.stringFlavor).toString();

String[]sp=text.split("

[\\D&

[^.]]"

if(sp.length>

0){

Stringstr=sp[sp.length-1];

System.out.println(str);

String[]sp2=str.split("

\\."

System.out.println(sp2.length);

if(sp2.length>

1){

Stringx=sp2[sp2.length-2];

text=(x.equals("

"

)?

"

:

x)+"

+sp2[sp2.length-1];

else

text=sp2[sp2.length-1];

msg.setText(text);

}catch(Exceptione1){

System.out.println("

错误:

+e1.getMessage());

privateclassButtonListenerextendsAbstractAction{

inti;

for(i=0;

buttons.length;

i++){

if(e.getActionCommand().equals(buttons[i].getText()))

break;

doublevalue2;

value2=Double.parseDouble(msg.getText());

}catch(NumberFormatExceptione1){

value2=0;

switch(i){

case0:

//=

if(operation!

=0){

doubleresult=0;

switch(operation){

case1:

result=value+value2;

case2:

result=value-value2;

case3:

result=value*value2;

case4:

result=value/value2;

showResult(result+"

hasPressed=false;

//+、-、*、/

=0&

hasPressed){

countResult(value2);

value=Double.parseDouble(msg.getText());

if(tmp.length()>

tmp=newStringBuffer();

operation=i;

case5:

//1/x

if(value2!

=0)

showResult((1/value2)+"

showResult("

case6:

//+/-

showResult((value2*-1)+"

case7:

//sqrt

showResult(Math.sqrt(value2)+"

case8:

//%

showResult((value*value2/100)+"

case9:

//.

if(tmp.toString().contains("

))

if(value2==0)

tmp.ap

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1