天气预报查询系统文档.docx

上传人:b****8 文档编号:9993092 上传时间:2023-02-07 格式:DOCX 页数:44 大小:186.83KB
下载 相关 举报
天气预报查询系统文档.docx_第1页
第1页 / 共44页
天气预报查询系统文档.docx_第2页
第2页 / 共44页
天气预报查询系统文档.docx_第3页
第3页 / 共44页
天气预报查询系统文档.docx_第4页
第4页 / 共44页
天气预报查询系统文档.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

天气预报查询系统文档.docx

《天气预报查询系统文档.docx》由会员分享,可在线阅读,更多相关《天气预报查询系统文档.docx(44页珍藏版)》请在冰豆网上搜索。

天气预报查询系统文档.docx

天气预报查询系统文档

 

软件086班

陈雯

20081396

一、课程设计目的

1.学习java与Sqlserver2005等数据库的连接

2.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、java程序的设计、文件和网络输入输出流编程、Java数据库编程等。

3.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。

二、课程设计总体要求

2.具有专门对各个城市进行天气查询的功能,但实现此功能需连接网络

3.显示当前时间、日期、星期的功能

4.具有托盘的功能,从而方便操作

5.设计此系统需要有一个通过选择城市从而获得天气情况的下拉框,以及显示该城市的天气情况的面板,因而采用简单的界面结构即可,界面见下图(注:

显示天气的图标是用flash制作的,需要jar包搭建来显示,具体的请看source文件夹)

6.代码实现(见具体的带有解释的源代码)

三、设计题目

设计一个天气预报查询系统,通过城市名获得当前、当日、明日的天气预报

四、注意事项

本系统设计的数据库是Sqlserver2005,用户名:

sa,密码:

123456.此天气预报查询系统文件夹中有备份的数据库.

五、设计

1.系统设计(功能)

系统启动后显示的托盘

系统启动后显示的气泡内容

鼠标移动到托盘图标时的事件

右击托盘图标的事件

系统初始化的界面

选择省份的界面

由省份得到的城市列表,此时是选择城市的界面

2.数据库的设计

数据库中的E-R图

数据库中的关系图

数据库中的表

由于满足第三范式,则得到的表为

天气预报(省份名,城市名,城市代码)

天气预报表的设计

天气预报表中的内容

五、实现

实现代码:

1、Today.java(对界面下方的时间进行处理)

packageWeatherFrame;

importjava.util.Calendar;

//此类用于对界面下方的时间进行处理

publicclassToday{

privatestaticfinalCalendarNOW=Calendar.getInstance();

privatestaticfinalintYEAR=NOW.get(Calendar.YEAR);

privatestaticfinalintMONTH=NOW.get(Calendar.MONTH)+1;privatestaticfinalintDAY=NOW.get(Calendar.DAY_OF_MONTH);

privatestaticfinalintWEEK=NOW.get(Calendar.DAY_OF_WEEK);

privatestaticfinalintHOUR=NOW.get(Calendar.HOUR_OF_DAY);

privatestaticfinalintMINUTE=NOW.get(Calendar.MINUTE);

privatestaticfinalintSECOND=NOW.get(Calendar.SECOND);

//

publicstaticStringgetDate(){//获得系统日期

returnYEAR+"-"+MONTH+"-"+DAY;

}

publicstaticStringgetDateOfNum(){//获得系统天数

Stringy=YEAR+"";

Stringm=MONTH+"";

Stringd=DAY+"";

if(MONTH<10)

m="0"+MONTH;

if(DAY<10)

d="0"+DAY;

returny+m+d;

}

publicstaticStringgetDateOfShow(){//显示年月日格式化

returnYEAR+"年"+MONTH+"月"+DAY+"日";

}

publicstaticStringgetDayOfWeek(){//获得系统时间后转化为星期

StringdayOfWeek="";

switch(WEEK){

case1:

dayOfWeek="星期日";

break;

case2:

dayOfWeek="星期一";

break;

case3:

dayOfWeek="星期二";

break;

case4:

dayOfWeek="星期三";

break;

case5:

dayOfWeek="星期四";

break;

case6:

dayOfWeek="星期五";

case7:

dayOfWeek="星期六";

break;

}

returndayOfWeek;

}

publicstaticStringgetTime(){//获得系统时间

returnHOUR+":

"+MINUTE+":

"+SECOND;

}

publicstaticvoidmain(String[]args){

System.out.println(Today.getDayOfWeek());

}

publicstaticintgetYEAR(){//获得系统年

returnYEAR;

}

publicstaticintgetDAY(){//获得系统天

returnDAY;

}

publicstaticintgetMONTH(){//获得系统月

returnMONTH;

}

}

2、Tray.java(在系统任务栏中具有托盘)

packageWeatherFrame;

importjava.awt.*;

importjava.awt.TrayIcon.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.AncestorEvent;

importjavax.swing.event.AncestorListener;

 

//此类用于在系统任务栏中具有托盘的功能

publicclassTray{

publicTrayIcontrayicon;

privateJFramef;

privateFontfont;

privateColorcolor;

publicSystemTraysysTray;

publicTray(JFramef){

this.f=f;

}

publicvoidSystemTrayInitial(){//系统栏初始化

if(!

SystemTray.isSupported())//判断当前系统是否支持系统栏

//isSupported()判断当前系统是否支持系统栏

return;

try{

finalStringtitle="天气预报";

finalStringmessage="详细相关信息\n请查看本系统";

sysTray=SystemTray.getSystemTray();

//设置托盘的图标

Imageimage=Toolkit.getDefaultToolkit().getImage(

Tray.class.getResource("/images/icon.png"));

trayicon=newTrayIcon(image,"");

trayicon.setToolTip("\n详细相关信息\n\n请查看本系统\n");//鼠标移动托盘图标显示的文字

//设置右击托盘的图标后的事件

finalJPopupMenupop=createMenu();

f.addMouseListener(newMouseListener(){

@Override

publicvoidmouseClicked(MouseEventarg0){

//TODOAuto-generatedmethodstub

pop.setVisible(false);

}

@Override

publicvoidmouseEntered(MouseEventarg0){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidmouseExited(MouseEventarg0){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidmousePressed(MouseEventarg0){

//TODOAuto-generatedmethodstub

pop.setVisible(false);

}

@Override

publicvoidmouseReleased(MouseEventarg0){

//TODOAuto-generatedmethodstub

}

});

trayicon.addMouseListener(newMouseListener(){//点击图标的事件

publicvoidmousePressed(MouseEvente){

if(e.getButton()==1){//点击左键的事件

f.setVisible(true);

f.toFront();

pop.setVisible(false);

}elseif(e.getButton()==3){//点击右键的事件

pop.show(e.getComponent(),e.getX(),e.getY());

}

}

publicvoidmouseExited(MouseEventarg0){}

publicvoidmouseClicked(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseReleased(MouseEvente){}

});

//向系统托盘中添加托盘图标对象

sysTray.add(trayicon);

//在系统托盘图标上显示气泡提示信息,此处NONE为不以任何形式显示

trayicon.displayMessage(title,message,MessageType.NONE);

}catch(Exceptione){

e.printStackTrace();

}

}

//创建右击托盘后出现的内容

privateJPopupMenucreateMenu(){//创建系统栏菜单的方法

font=newFont("楷体",Font.PLAIN,12);

color=Color.white;

finalJPopupMenumenu=newJPopupMenu();

menu.setBorder(BorderFactory.createLineBorder(newColor(0,178,231),1));//设置右击托盘图标的边框属性

finalJMenuItemexitItem=newJMenuItem("退出");//设置右击托盘图标的退出相关操作

exitItem

.setIcon(newImageIcon(Tray.class.getResource("/images/退出.png")));

exitItem.setBackground(color);

exitItem.setFont(font);

exitItem.addMouseListener(newMouseListener(){//右击托盘图标的退出事件

publicvoidmouseClicked(MouseEventarg0){

exitItem.setBackground(Color.white);

menu.setVisible(false);

}

publicvoidmouseEntered(MouseEventarg0){

//TODOAuto-generatedmethodstub

exitItem.setBackground(newColor(0,178,231));

}

publicvoidmouseExited(MouseEventarg0){

exitItem.setBackground(Color.white);

}

publicvoidmousePressed(MouseEventarg0){

exitItem.setBackground(Color.white);

}

publicvoidmouseReleased(MouseEventarg0){

exitItem.setBackground(Color.white);

}

});

exitItem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

menu.setVisible(false);

System.exit(0);

}

});

finalJMenuItemopenItem=newJMenuItem("打开");//设置右击托盘图标的打开相关操作

openItem

.setIcon(newImageIcon(Tray.class.getResource("/images/打开.png")));

openItem.setBackground(color);

openItem.setFont(font);

openItem.addMouseListener(newMouseListener(){//右击托盘图标的打开事件

publicvoidmouseClicked(MouseEventarg0){

openItem.setBackground(Color.white);

menu.setVisible(false);

}

publicvoidmouseEntered(MouseEventarg0){

openItem.setBackground(newColor(0,178,231));

}

publicvoidmouseExited(MouseEventarg0){

openItem.setBackground(Color.white);

}

publicvoidmousePressed(MouseEventarg0){

openItem.setBackground(Color.white);

}

publicvoidmouseReleased(MouseEventarg0){

openItem.setBackground(Color.white);

}

});

openItem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

if(!

f.isVisible()){

menu.setVisible(false);

f.setVisible(true);

f.toFront();

}else

f.toFront();

}

});

//系统栏的访问服务器菜单项事件

menu.add(openItem);

menu.add(exitItem);

returnmenu;

}

}

3、WeatherFrame.java(天气预报查询系统)

packageWeatherFrame;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjava.awt.event.WindowListener;

importjava.io.File;

importjava.io.IOException;

import.InetAddress;

import.MalformedURLException;

import.URL;

import.UnknownHostException;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjava.text.DateFormat;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

importjava.util.Date;

importjava.util.Locale;

importjavax.swing.BorderFactory;

importjavax.swing.Box;

importjavax.swing.ImageIcon;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTabbedPane;

importjavax.swing.SwingConstants;

importjavax.swing.UIManager;

importjavax.swing.border.TitledBorder;

importjavax.xml.parsers.DocumentBuilder;

importjavax.xml.parsers.DocumentBuilderFactory;

importjavax.xml.parsers.ParserConfigurationException;

importorg.w3c.dom.DOMException;

importorg.w3c.dom.Document;

importorg.w3c.dom.NamedNodeMap;

importorg.w3c.dom.NodeList;

importorg.xml.sax.SAXException;

importcom.jpackages.jflashplayer.FlashPanel;

importcom.jpackages.jflashplayer.JFlashInvalidFlashException;

importcom.jpackages.jflashplayer.JFlashLibraryLoadFailedException;

importWeatherFrame.YahooWeatherFramePre.CityItem;

//此类是天气预报查询系统的主要代码

publicclassWeatherFrameextendsJFrame{

privateContainercontainer;

privateintx;

privateinty;

privateDimensiondeminsion;

privateJPanelstauspanel;

privateJLabellabel;

privateJLabeltimelabel;

privateJLabeldatelabel;

privateJTabbedPanetabbedpane;

privateJPanelpanel;

//天气情况图片

publicstaticJLabeljlTodayImg=newJLabel();

//天气总情况描述

JLabeljlTodayTitle=newJLabel();

//当前气温

JLabeljlTodayDegree=newJLabel();

//当前风冷热系数

JLabeljlTodayChill=newJLabel();

//当前风速

JLabeljlTodaySpeed=newJLabel();

//当前风向

JLabeljlTodayDirection=newJLabel();

//当前湿度

JLabeljlTodayHumidity=newJLabel();

//当前气压

JLabeljlTodayPressure=newJLabel();

//当前能见度

JLabeljlTodayVisiblity=newJLabel();

//日出

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

当前位置:首页 > 农林牧渔 > 林学

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

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