java课程设计温度转换器符原代码.docx

上传人:b****6 文档编号:7613384 上传时间:2023-01-25 格式:DOCX 页数:11 大小:2.24MB
下载 相关 举报
java课程设计温度转换器符原代码.docx_第1页
第1页 / 共11页
java课程设计温度转换器符原代码.docx_第2页
第2页 / 共11页
java课程设计温度转换器符原代码.docx_第3页
第3页 / 共11页
java课程设计温度转换器符原代码.docx_第4页
第4页 / 共11页
java课程设计温度转换器符原代码.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

java课程设计温度转换器符原代码.docx

《java课程设计温度转换器符原代码.docx》由会员分享,可在线阅读,更多相关《java课程设计温度转换器符原代码.docx(11页珍藏版)》请在冰豆网上搜索。

java课程设计温度转换器符原代码.docx

java课程设计温度转换器符原代码

《面向对象程序设计》

题目:

温度转换器

班级:

通信

学号:

2000000000

姓名:

完成时间:

2014-11-03

温度转换器

1.应用意义

编写一个温度转换器,能实现华氏温度与摄氏温度之间的互相转换,以便需要者能快速计算。

二.功能描述

在程序中,除了其简单的温度互相转换之外,为了美观起见,我还添加一些图片和背景音乐(背景音乐可以随关随开),且图片会随着使用者输入的数值发生改变。

(对应春夏秋冬四季)

分析论证:

此题目的的主要运用我们JAVA第十一章学习的内容(Swing图形用户界面(GUI)编程)中的组件与内容、布局管理器、事件处理等和第十章(Applet的运用)等知识.借鉴书中的例子组建出窗体,利用温度间的转换公式,通过监听事件调用Applet播放声音以及图片的导入与变换.

三.结构分析

此题主要是JAVA一些组件的运用,具体组件与内容、布局管理器、事件处理等和Applet的运用知识.

1.首先应该创建程序的主体窗口,窗体中有一个JTextField组件,一个JLabel组件和一个“转换”按钮,使得程序基本能够初始化运行;

2.再写入温度转换的公式,使得温度转换计的基本功能实现;

3.接着运用Applet中的AudioClip类来播放声音,使得背景音乐功能得以实现;

4.最后插入图片功能,使得随着温度的不同能够自动转换每个季节的图片.

经过反复的实验与论证,发现图片的功能比较难实现,在图书馆查了一些书籍和詹东健的帮助下攻克了这个问题.在布局方面比较简单,采用了箱式布局.方位布局,网格的布局,最后做成了小JAVA程序.

 

程序框图如图所示:

 

代码如下(注释语句为自己在编写过程中出错的语句。

packageless11;

importjava.applet.AudioClip;

importjava.awt.BorderLayout;

importjava.awt.Button;

importjava.awt.Container;

importjava.awt.FlowLayout;

importjava.awt.Graphics;

importjava.awt.GridLayout;

importjava.awt.Image;

importjava.awt.Panel;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.ImageIcon;

importjavax.swing.JApplet;

importjavax.swing.JComboBox;

importjavax.swing.JTextField;

publicclasstextextendsJAppletimplementsActionListener{

publicJTextFieldfirst,second,three;//定义三个文本框

publicJComboBoxchose;//定义一个组合框

publicButtonecquilButton,stopButton,stopButton2;//三个按钮

publicPanelImgepanel,panel2;//定义两个面板

AudioClipmusice;//音频播放器

publicvoidinit()//界面的初始化

{

//JAppleta=newJApplet();

resize(600,600);//调整界面大小

Containerc=getContentPane();//容器(添加内容格)

c.setLayout(newBorderLayout());//设置边框布局管理器

panel2=newPanel();//容器面板赋初值

panel2.setLayout(newGridLayout(1,4));//将面板12设置成网格布局管理器

first=newJTextField(10);//可视字符长度为10

second=newJTextField(10);

three=newJTextField(10);

String[]tybe={"转换为摄氏温度","转换为华氏温度"};//下拉列表中的两类

chose=newJComboBox(tybe);

ecquilButton=newButton("=");//定义“=”按钮

ecquilButton.addActionListener(this);//事件监听

panel2.add(first);

panel2.add(chose);

panel2.add(ecquilButton);

panel2.add(three);

c.add(panel2,BorderLayout.SOUTH);//将面板2加到边框布局管理器的南面

stopButton=newButton("暂停");

//stopButton.setSize(10,10);

stopButton2=newButton("开始");

stopButton.addActionListener(this);//事件监听器

stopButton2.addActionListener(this);

//startButtom

Imgepanel=newPanel();

Panelbutton=newPanel();//定义一个button容器。

//button.setLayout(null);

//stopButton2.setBounds(30,30,101,101);

button.add(stopButton);

button.add(stopButton2);

c.add(Imgepanel,BorderLayout.CENTER);//放置四季图片出现的地方的布局

c.add(button,BorderLayout.NORTH);

musice=getAudioClip(getCodeBase(),"月半小夜曲.wav");//得到背景音乐

//Imaget=getImage();

//Graphicsg=Imgepanel.getGraphics();

//Imgepanel.paintComponents(g);

//g.drawImage(t,0,0,this);

musice.loop();//循环播放

}

publicvoidactionPerformed(ActionEvente)//按钮的事件监听器ActionEvente是事件类,e是事件对象

{

Buttonsource=(Button)e.getSource();//点击Button获取事件源

Stringwhice=source.getLabel();

if(whice.contentEquals("="))//当括号内与设定相同是,执行语句。

{

Stringheat=first.getText();

Doublea=Double.parseDouble(heat);//转换成double类型

Stringmess=(String)chose.getSelectedItem();//(文本形式)得到用户选项是哪个

chose.setEnabled(true);//设置下拉菜单可用

if(mess.contentEquals("转换为摄氏温度"))//当括号内与设定相同是,执行语句。

{

a=(a-32)/1.8;

pian(a);//显示图片

three.setText(a.toString()+"°C");//输出文本模式

}else{

pian(a);

a=a*1.8+32;

three.setText(a.toString()+"°F");

}

}

if(whice.contentEquals("暂停"))//当括号内与设定相同是,执行语句。

{

musice.stop();

}

if(whice.contentEquals("开始"))//当括号内与设定相同是,执行语句。

{

musice.loop();

}

}

publicvoidpian(Doublea)//是画面板的图片//温度

{

Graphicsg=Imgepanel.getGraphics();

if(a<10)

{

ImageIconat=newImageIcon("冬.jpg");//得到一个图片(冬天)

Imageimage=at.getImage();

g.drawImage(image,0,0,this);//this所代表的对象作为参数进行传递

}

if(10<=a&&a<22)

{

ImageIconat=newImageIcon("春.jpg");//得到一个图片(春天)

Imageimage=at.getImage();

g.drawImage(image,0,0,this);

}

if(22<=a&&a<30)

{

ImageIconat=newImageIcon("秋.jpg");//得到一个图片(秋天)

Imageimage=at.getImage();

g.drawImage(image,0,0,this);

}

if(30<=a)

{

ImageIconat=newImageIcon("夏.jpg");//得到一个图片(夏天)

Imageimage=at.getImage();

g.drawImage(image,0,0,this);

}

}

}

四.实验结果

1.(运行程序,背景音乐自动播放,可选择下面的按钮是否继续播放)

(当输入20摄氏度时,大约是春天的温度,系统自动切换到春天的图片)

2.(在下拉菜单中使用者可以选择自己需要的转换目标)

3.(当输入30摄氏度时,大约是夏天的温度,系统自动切换到夏天的图片)

.

4.(当输入22摄氏度时,大约是秋天的温度,系统自动切换到秋天的图片)

5.(当输入10华氏度时,大约是冬天的温度,系统自动切换到冬天的图片)

5.设计总结

这次的课程设计时间比较紧,所以总体的构思和设计都不是很紧凑。

比如(按钮的尺寸可以在有所调整,在刚开始没有输入温度时,面板中可以添加图片等。

)并且有不少内容都没有学过,属于边学边做,再加上自己java学的不是很精通,所以编写起来比较吃力,所以参考过网上内容,也问同学不少问题。

在刚开始,自己做了一个简单的温度转换器,只有摄氏度转换成华氏度,当某位同学提起有没有华氏转换成摄氏时,我就感觉应该把程序改改,让它更加的全面。

(原程序我也将它放入报告,在附录中。

)所以,在之后的完善中我添加了图片和背景音乐。

犹豫在applet中添加这两样比较简单,所以就看了书本再结合孙鑫老师讲的,编写了程序。

并且在报告里,我也把自己在编写过程中出错的地方也放入并注释起来,这样就能让自己更加一目了然的知道自己哪里错,为什么错。

不过当自己真正完成作业的时候,还是很有成就感的。

 

附录:

源代码:

packageless12;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassCimplementsActionListener

{

JFrameF;

JPanelP;

JTextFieldJF;

JLabelcL,fL;

JButtonB;

publicC()

{

F=newJFrame("温度转换器");

F.setSize(40,40);

P=newJPanel();

P.setLayout(newGridLayout(2,2));

F.setLocation(800,300);

addWidgets();

F.getContentPane().add(P,BorderLayout.CENTER);

F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

F.pack();

F.setVisible(true);

}

privatevoidaddWidgets()

{

JF=newJTextField

(2);

cL=newJLabel("摄氏温度",SwingConstants.LEFT);

B=newJButton("转换...");

fL=newJLabel("华氏温度",SwingConstants.LEFT);

B.addActionListener(this);

P.add(JF);

P.add(cL);

P.add(B);

P.add(fL);

cL.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));

fL.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));

}

publicvoidactionPerformed(ActionEventevent)

{

inttempFahr=(int)((Double.parseDouble(JF.getText()))*1.8+32);

fL.setText(tempFahr+"F");

}

publicstaticvoidmain(String[]args)

{

try

{

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

}catch(Exceptione){}

Cconverter=newC();

}

}

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

当前位置:首页 > 高中教育 > 初中教育

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

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