星座查询程序

在占星学上,黄道十二星座是宇宙方位的代名词,十二星座代表了12种基本性格原型,一个人出生时各星体落入黄道上的位置,正是说明着一个人的先天性格及天赋。因此,现在很多人都希望知道自己的星座。现在很多网站都提供了星座查询功能。例如,腾讯网中的星座查询栏目,如图1所示。

1  腾讯网中的星座查询栏目

再例如,搜狐网中也提供了星座查询栏目,如图2所示。

2  搜狐网中的星座查询栏目

选择出生的月份和日期后,单击“星座”按钮,将查询该生日对应的星座,如图3所示。

3  查询星座的结果页

下面我们也来设计一个星座查询程序。它能够根据输入的阳历生日,计算出对应的星座。程序运行结果如下。

l         输入真实的生日查询星座的效果

在月份文本框中输入出生的月份,在日文本框中输入出生的日期,单击“查询星座”按钮,将查询该生日对应的星座,如图4所示。

4  输入真实的生日查询星座的效果

l         输入的生日不正确时显示的效果

如果输入的生日不正确,将给予提示,如图5所示

5  输入的生日不正确时,显示的效果

已有类

位置:应用/源码管理/类库/IntJTextField.jar

位置:应用/源码管理/类库/BackgroundPanel.jar

位置:应用/源码管理/类库/QueryConstellation.jar

 关键技术

在实现星座查询时,最关键的技术就是熟练应用已有类。下面将对如何应用已有类进行介绍。

在开发程序时,应用已有类,可以大大提高项目的开发进度。因此对于Java程序来说,掌握在项目中应用已有类是必不可少的。下面就以本实例中的输入整型数据的文本框为例进行介绍。

1)将要应用的已有类的.jar文件复制到项目中,这里将其复制到项目下的lib文件夹中,如图6所示。

6  复制Jar文件到lib文件夹

2)在IntJTextField.jar节点上单击鼠标右键,在弹出的快捷菜单中选择“构建路径”/“添加至构建路径”菜单项,将该Jar添加到构建路径中。这时在包资源管理器中将显示如图7所示的结构。

7  Jar添加至构建路径

3)通过设计视图打开需要应用该类的JFrame窗体,在左侧的工具面板中,选择按钮,在弹出的Open type对话框中,输入com.wgh.,这时Eclipse将自动给出如图8所示的提示信息。

8  Open type对话框

4)双击上图中的IntJTextField - com.wgh节点,将显示如图9所示的效果。

9  等待选择组件放置的位置

5)这时您可以移动鼠标,将该组件放置到合适的位置,如图10所示。

10  组件放置完成的效果

6)这时,自定义的组件就添加完毕了。如果还需要调用组件的方法,可以转到代码视图,添加相应的方法。例如,调用IntJTextField中的getInt()方法,可以应用以下的代码:

final IntJTextField intJTextField = new IntJTextField();

intJTextField.getInt();

 实现步骤

下面我们来介绍星座查询程序的实现步骤。

1)创建一个Java项目,名称为“星座查询程序”。

2)创建一个JFrame窗体,名称为MainFrame,并将其保存在com.wgh包中。

3)在项目的根目录中创建一个名称为lib的文件,并将本实例所需的已有类BackgroundPanel.jarIntJTextField.jarQueryConstellation.jar复制到lib文件夹中。

4)依次将3Jar包添加到构建路径中。添加后的包资源管理器结构如图11所示。

11  3Jar包全部配置到构建路径中的效果

5)在设计视图中,打开程序的主窗体MainFrame,并设置窗体为空布局,以及窗体的标题,然后在左侧的工具面板中,选择按钮,在弹出的Open type对话框中,输入com.lzw.BackgroundPanel后,单击“确定”按钮,将显示如图12所示的效果。

12  等待选择组件放置的位置

说明设置窗体为空布局的方法是在窗体上单击鼠标右键在弹出的快捷菜单中选择Set layout/Absolute (null) Layout菜单项。或者在属性面板中,找到layout属性,将属性值设置为Absolute (null) Layout

6)在合适位置单击鼠标,放置组件,并调整窗体和组件的大小。

7)在src节点上添加一个名称为images的文件夹,并将背景图片复制到这个文件夹中。

8)选中刚刚添加的BackgroundPanel组件,在左侧的属性面板中找到image属性,单击“…”按钮,将弹出选择图片对话框,这里选择bg.jpg,如图13所示,单击“确定”按钮。

13  选择图片对话框

9)向该窗体中添加文本框、标签、和IntJTextField控件,并设置主要属性,如表1所示。

1                   程序主窗体中控件的属性设置

控件名称

控件属性

关联变量

text:月

foregroundWHITE

label

text:日

foregroundWHITE

label_1

text:请输入您的阳历生日:

foregroundWHITE

label_2

 

monthTextField

 

dayTextField

text:查询星座

button

说明 IntJTextField控件为编程词典提供的已有类,用于接收并返回整型的数字。

10)在“查询星座”按钮上,双击鼠标左键,进入到代码视图,这时,Eclipse将自动为该按钮添加单击事件。Eclipse自动生成的代码如下:

button.addActionListener(new ActionListener() {               //为按钮添加事件监听

      public void actionPerformed(final ActionEvent e) {    //重写actionPerformed()方法

      }

});

此时,只需要在最里层的大括号中间编写用于实例化ConvertSum类,并调用相应的方法将输入的小写金额转换为大写金额,显示到转换后文本框中的代码,具体代码如下。

button.addActionListener(new ActionListener() {                                    //Eclipse自动生成的代码

      public void actionPerformed(final ActionEvent e) {                         //Eclipse自动生成的代码

            int month=monthTextField.getInt();                                          //获取月份

            int day=dayTextField.getInt();                                                  //获取日

            QueryConstellation queryConstellation=new QueryConstellation();                            //实例化星座查询类

            result.setText(queryConstellation.query(month,day));                  //获取并显示星座

      }                                                                                                 //Eclipse自动生成的代码

});                                                                                                     //Eclipse自动生成的代码

11)保存该文件,单击按钮,运行该程序,将显示如图14所示的运行结果。

14  默认的运行结果

输入正确的生日,单击“查询星座”按钮,将显示如图4所示的运行结果,输入并不合法的生日,单击“查询星座”,将显示如图5所示的运行结果。