Java计算器实验报告Word文件下载.docx

上传人:b****6 文档编号:19722120 上传时间:2023-01-09 格式:DOCX 页数:12 大小:81.77KB
下载 相关 举报
Java计算器实验报告Word文件下载.docx_第1页
第1页 / 共12页
Java计算器实验报告Word文件下载.docx_第2页
第2页 / 共12页
Java计算器实验报告Word文件下载.docx_第3页
第3页 / 共12页
Java计算器实验报告Word文件下载.docx_第4页
第4页 / 共12页
Java计算器实验报告Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Java计算器实验报告Word文件下载.docx

《Java计算器实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java计算器实验报告Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

Java计算器实验报告Word文件下载.docx

用到的类:

mycal

KeyAdapter

WindowAdapter

MyCal类:

mycal类的属性:

b[];

按钮数组保存各种按键以后放到Panel2中

tf;

文本匡显示输入及运算结果

num1,num2,jieguo运算数

charc,ch;

运算符号,ch为输入的运算符号,c保存ch输入的“+-*/”

Panelp1,p2;

//两个组件p1放文本匡p2放按钮

P2的布局为网格布局5行4列

mycal类的方法:

1.构造方法:

设置标题;

设置文本框;

文本框中添加匿名内置类(KeyAdapter)实现键盘的输入和运算;

将各种组件添加到容器,设置各种按键的颜色;

添加WindowListenr监听器设置关闭按钮;

2.Main方法:

新建一个mycal类;

4.actionPerformed方法:

设置按钮的输入和运算,

当按下运算数将其显示在文本匡中如果之前清零则将零去除

当按下运算符将其保存在c中并将文本匡内容清空

当按下等号判断字符c的符号进行相应的运算并将结果显示在文本框中。

当按下清空按钮将文本框清空,当按下退格按钮取文本框中字符串的字串删除一个符号。

KeyAdapter类:

KeyAdapter类的属性:

mycal类中的属性

KeyAdapter类的方法:

keyPressed()方法

当键盘按下时,判断键盘的输入

当为“+-*/”时记录下num1及c;

当为”=”或“Enter”时记录下num2并将结果计算出来

keyReleased()方法

当键盘松开时,

如果是按下“+-*/”后松开

将文本框清空

如果是按下“=”或“Enter”后松开

将计算结果显示在文本框中

WindowAdapter类:

WindowAdapter类的属性:

WindowEvente

WindowAdapter类的方法:

windowClosing();

设置关闭按钮

、四、源代码

/*

类mycal继承Frame实现了ActionListener接口;

往容器中添加两个组件Panel1,Panel2;

Panel中放置文本匡,Panel2中放置各种按键;

文本匡中以匿名内置类的方式添加键盘监听器实现键盘的输入及运算;

为Panel2中各种按键添加动作监听器实现按键的输入及运算;

*/

importjava.awt.*;

importjava.awt.event.*;

classmycalextendsFrameimplementsActionListener

{

privateButton[]b;

privateTextFieldtf;

privatedoublenum1,num2,jieguo;

//运算数

privatecharc,ch;

//运算符

Panelp1,p2;

//两个组件

publicmycal()

{

setTitle("

MyCalculator1.0"

);

p1=newPanel();

tf=newTextField(25);

tf.addKeyListener(newKeyAdapter(){//添加键盘监听器现键盘的输入及运算

publicvoidkeyPressed(KeyEvente)

{

charch=e.getKeyChar();

if("

+-*/"

.indexOf(ch)!

=-1)

{

num1=Double.parseDouble(tf.getText());

c=ch;

}

if(ch=='

='

|ch==e.VK_ENTER)

num2=Double.parseDouble(tf.getText());

switch(c)

{

case'

+'

:

jieguo=num1+num2;

break;

case'

-'

jieguo=num1-num2;

*'

jieguo=num1*num2;

/'

jieguo=num1/num2;

}

publicvoidkeyReleased(KeyEvente)

tf.setText(null);

|e.getKeyCode()==e.VK_ENTER)

tf.setText(Double.toString(jieguo));

});

p1.add(tf);

add(p1,"

North"

p2=newPanel();

p2.setLayout(newGridLayout(5,4,10,8));

b=newButton[21];

for(inti=1;

i<

21;

i++)

b[i]=newButton();

b[i].setFont(newFont("

仿宋"

0,16));

}

Stringstr1="

/789*456-123+0"

;

b[1].setLabel("

退格"

b[2].setLabel("

清空"

b[3].setLabel("

清零"

for(inti=4;

=17;

b[i].setLabel(str1.charAt(i-4)+"

"

b[18].setLabel("

+/-"

b[19].setLabel("

."

b[20].setLabel("

="

for(inti=1;

{

p2.add(b[i]);

b[i].addActionListener(this);

b[i].setBackground(newColor(20,130,180));

b[i].setForeground(Color.yellow);

4;

i++)

b[i].setBackground(newColor(120,180,170));

b[i].setForeground(Color.blue);

=4;

{b[i*4].setBackground(newColor(120,180,170));

b[i*4].setForeground(Color.red);

b[20].setBackground(Color.red);

add(p2);

//Dimensiondi=this.getPreferredSize();

//System.out.println(di.width+"

"

+di.height);

setBounds(100,200,230,300);

setVisible(true);

addWindowListener(newWindowAdapter(){//设置关闭按钮

publicvoidwindowClosing(WindowEvente)

{

e.getWindow().setVisible(false);

e.getWindow().dispose();

System.exit(0);

}

});

publicstaticvoidmain(Stringargs[])

newmycal();

publicvoidactionPerformed(ActionEvente)//为Panel2中各种按键添加动作监听器实现按键的输入及运算;

Stringstr=e.getActionCommand().trim();

if("

0123456789."

.indexOf(str)!

if(tf.getText().equals("

0"

))tf.setText(null);

tf.setText(tf.getText()+str);

return;

num1=Double.parseDouble(tf.getText());

c=str.charAt(0);

tf.setText(null);

elseif(str.equals("

))

num2=Double.parseDouble(tf.getText());

tf.setText(Double.toString(jieguo));

if(tf.getText().isEmpty()==false)

Doublelnum=-(Double.parseDouble(tf.getText()));

tf.setText(Double.toString(lnum));

else

tf.setText("

-"

tf.setText("

tf.setText(tf.getText().substring(0,tf.getText().length()-1));

}

五、程序运行结果演示

计算器界面

7+8

清空

9*4

7*8

退格

清零

六、总结

通过本次实验让我对Frame类、Panel类、5种布局管理器、文本框、标签及按钮的使用方法,有了进一步的了解。

同时在实验过程中也发现了自己的许多不足,但通过查询对其有有了更深刻大大大的了解.

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

当前位置:首页 > 外语学习 > 英语考试

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

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