实验五Java项目开发实例
令狐采学
实验目的:
掌握运用RAD开发Java应用程序
目标要求:
1.掌握运用Visual Editor创建窗口应用程序
2.掌握通过JDBC连接数据库
内容简介:
本章将介绍MyLibrary的GUI应用程序。
实验说明:
第一节创建GUI应用程序
1.添加JDBC环境变量
在菜单栏点击“文件-> 新建-> 项目”,选择“Java项目”,点击“下一步”。
输入项目名称“MyLibraryGUI”,点击“下一步”。
在Java设置中选择“库”栏,点击“添加变量”。在“新建变量类路径条目”对话框中点击“配置变量”
在“类途径变量”对话框中点击“新建”按钮,会弹出“新建变量条目”对话框。在“名称”栏中输入“CLOUDSCAPE_DRIVER_JAR”,然后点击“文件”按钮,找到D:/Program Files/IBM/Rational/SDP/6.0/runtimes/base_v6/cloudscape/lib/db2 j.jar,如下图:
点击“确定”。再次点击“确定”。在弹出对话框点击“是”。
在“新建变量类路径条目”窗口中选择
,点击“确定”。
这样就在MyLibraryGUI项目里添加了Cloudscape 的JDBC驱动。点击“完成”按钮。
2.新建可视类(Visual Class)
在菜单栏选择“文件-> 新建-> 其它-> Java -> 可视类”,点击“下一步”。
在“Java类”窗口,“包”文本框输入mlg.library.gui,“名称”文本框输入“MyLibraryDesktopApp”,“样式”选择“Swing -> 框架”(选择后“超类”变成javax.swing.JFrame),点击“接口”右侧的“添加”,输入ActionListener,点击“确定”。勾选“puli bc static void main(String[] args)”,点击“完成”
在如下图的工作台中,点击1里的下三角箭头,将源代码区域最小化,点击2里的三角箭头使得选用板总是可见,将3处拉
伸使得选用板中各控件可以很好看到。
在RAD下侧的“属性”栏里,将“>标题”的值改为“图书馆图书管理”,如果想改变大小,可以将修改“>大小”的值。
点击MyLibraryDesktopApp.java可视编辑器里的面板JPanel(不是整个框架JFrame),在下面的“属性”栏中找到“布局”,默认值为BorderLayout,在列表中选择GridBagLayout。Ctrl+S保存。
3.添加GUI组件
下面向JFrame里添加Swing组件,使得图书馆图书管理的应用程序如下所示:
在左侧的“选用板”中点击“Swing组件”中的“JLabel”,然后将鼠标指针移至content pane。这时鼠标指针会显示(0, 0),这是GridBagLayout下的组件坐标。
再次点击鼠标,这个JLabel会出现在content pane的中央。
在“选用板”选择一个JTextField,将它放在刚才那个JLabel 的右边,鼠标指针会出现(1, 0)。
重复以上两步,一共添加共2个JLabel和JTextField。
在(1, 2)添加一个JButton。
点击一下(0, 0)的JLabel,再点击一下,输入“书名”两个字。用同样的方法,将第二个JLabel的文本改成“作者”。再将JButton的文本改成“添加”。
4.运行可视类
点击设计编辑器和属性栏之间的中的任一个箭头,使得
源代码编辑器出现。在源代码区域找到main方法,添加如下代码,用于在这个java类启动后能够运行图形界面:
public static void main(String[] args)
{
MyLibraryDesktopApp app = new MyLibraryDesktopApp();
app.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
app.setVisible(true);
}
右键点击“包资源管理器”中的MyLibraryDesktopApp.java,选择“运行-> Java应用程序”
会看到MyLibraryDesktopApp.java程序的运行界面:
5.添加事件处理方法
为上小节新建的“添加”按钮添加事件。在MyLibraryDesktopApp.java的可视编辑界面,右键点击“添加”按钮,选择“事件-> 添加事件”,在弹出的“添加事件”向导直接点击“完成”按钮。
察看MyLibraryDesktopApp.java的源代码,会看到添加了如下代码:
private JButton getJButton()
{
if (jButton == null)
{
jButton = new JButton();
jButton.setText("添加");
jButton.addActionListener(new
java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
}
return jButton;
}
现在将其中负责处理按钮事件的的
public void actionPerformed(java.awt.event.ActionEvent e)
{
System.out.println("actionPerformed()");//TODOAuto-generated Event stub actionPerformed()
}
更改为如下代码,作用是当用户按下按钮后将用户所输入的信息添加到数据库,如果添加成功则弹出添加成功的消息框。
public void actionPerformed(java.awt.event.ActionEvent e)
{
String BookName = jTextField.getText();
String BookAuthor = jTextField1.getText();
try
{
BookInfoFactory.InsertBooksInfo(BookName, BookAuthor);
JOptionPane.showMessageDialog(null, BookName
+ "已成功添加到数据库", "添加成功",
https://www.doczj.com/doc/4e5228913.html,RMATION_MESSAGE);
} catch (SQLException e1)
{
e1.printStackTrace();
}
}
(产生的错误将在下一节处理)
6.GUI应用程序通过JDBC与数据库的连接
在“包资源管理器”中的MyLibraryGUI项目点击右键,选择“新建-> 包”,输入包名“mlg.library.db”,在新建的包
mlg.library.db中点击右键,选择“新建-> 类”,新建一个DatabaseManager.java的类,指定JDBC和数据源,用于与数据库连接。
输入以下代码:
public class DatabaseManager
{
public static Connection getConnection() throws SQLException
{
Connection con = null;
try
{
Class.forName("com.ibm.db2j.jdbc.DB2jDriver");
con = DriverManager
.getConnection("jdbc:db2j:D:\\Projects\ \RAD\\database\\MyLibrary");
} catch (Exception e)
{
e.printStackTrace();
con.close();
}
return con;
}
}
RAD会给出错误提示,需要导入相应的类库,点击“Shift + Ctrl + O”,选择“java.sql.Connection”,点击“完成”:同样在mlg.library.db包下新建一个名为“BooksInfoFactory.java”的类,InsertBooksInfo()方法用于接受用户输入信息后将信息转换为输入数据库的SQL语句并执行,使其写到数据库中,getAllBooksInfo()从数据库中取得所有图书信息。
输入如下代码:
public class BookInfoFactory
{
public staticvoid InsertBooksInfo(String name, String author) throws SQLException
{
String id = (new Double((Math.floor(1000000*Math.random())))).toString();
String SQLstr = "INSERT INTO mls.bookinfo"
+ " (ID,BOOKNAME,AUTHOR)"
+ " VALUES ('" + id +"','" + name + "','" + author + "')";
System.out.println(SQLstr);
DatabaseManager.getConnection().createStatement().executeUpdat e(SQLstr);
}
}
并用“Shift + Ctrl + O”导入相应的包。
运行MyLibraryDesktopApp.java,输入一本书的信息,比如:点击“添加”,如果添加成功,会有提示:
在RAD右上角的透视图选择“数据”,转换到数据模式透视图。
在左下侧的“数据库资源管理器”,右键点击“MyLibraryConnection”,选择“重新连接”。连接成功后选择“MLS -> 表-> MLS.ACCOUNTINFO”,点击右键选择“样本内容”
可以在“DB输出”栏看到刚才添加的书籍的信息已经成功输入到数据库中