实验八基于图形用户界面的JDBC程序开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4基于图形用户界面的JDBC程序开发 (2)
淮海工学院计算机科学系
实验报告书
课程名:__ Java___________
题目:_基于图形用户界面的JDBC程序开发
班级:__ ___________
学号:__ __________
姓名:__ __________ _
一、实验目的
熟练运用GUI标准组件和布局管理器,正确合理地利用常用AWT和Swing组件进行
图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;理解Java多线程机制,掌握线程使用方法。
理解JDBC的数据库访问编程原理,正确利用JDBC技术编写以数据库应用为核心的软件系统,并在设计中灵活运用之前所学的Java语言面向对象的编程技术。
二、实验环境
操作系统:windows 2000 或 Window XP
集成开发环境:JDK1.6及以上版本
三、实验学时
2学时,必做实验。
四、实验内容
(1)进一步熟悉JavaGUI标准组件和布局管理器、正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java
的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;实践程
序调试方法、纠错能力及编程规范性等;理解JDBC的数据库访问编程原理,
正确利用JDBC技术编写以各种数据库应用;
(2)按以下各题目具体要求调试或编写相关算法程序
五、实验步骤与结果
1 请按照以下功能要求编写并调试相关程序
(1) 请定义一个抽象的“科学图书”类,其中包含1个公共的抽象方法:图书介绍;1个属性为:图书类别 (字符串类型);
(2) 定义一个“计算机图书”子类(继承于“科学图书”类),其中包括2个域:出版社、定价;2个构造方法:一个为无参构造方法,在该无参构造方法中将“图书类别”设置为“计算机图书”,一个带2个参数(出版社、定价);不少于2个成员方法:分别用来查看出版社、修改定价,图书介绍文字可自编,并编写输出计算机图书全部信息的toString()方法。
(3) 编写一个图形用户界面,用来测试能否正确创建计算机图书类的对象、能否正常调用其方法,参考界面如下。必须实现的基本功能是:
1)单击图中的“新增计算机图书”按钮,则可显示出新增的计算机图书信息(显示信息的控件不限,用文本域、列表框、表格均可),要求添加的计算机图书不少于2本,如下图所示:
图1 运行截图——新增计算机图书
2)单击图中的“修改定价”按钮,可修改其中某本图书的定价,并在下方显示出修改后的结果
请按照实验内容具体要求完成相关设计与编程,实验步骤;
(1) 程序代码
import java.awt.*;
import java.awt.event.*;
class CM extends Frame implements ActionListener
{
CMBook start; //当做链表的开头
Panel 操作栏;
Label 出版社,定价,显示;
TextField 出版社栏,定价栏;
Button 新增计算机图书,修改定价;
TextArea 显示内容;
CM()
{
super("计算机图书类操作图形用户界面");
start=null;
显示=new Label();
显示内容=new TextArea();
显示内容.setSize(80,50);
新增计算机图书=new Button("新增计算机图书");
修改定价=new Button("修改定价");
新增计算机图书.addActionListener(this);
修改定价.addActionListener(this);
操作栏=new Panel();
操作栏.setSize(60,5);
出版社=new Label("出版社");
定价=new Label("定价");
出版社栏=new TextField(10);
定价栏=new TextField(5);
操作栏.add(出版社);操作栏.add(出版社栏);
操作栏.add(定价);操作栏.add(定价栏);
操作栏.add(新增计算机图书);操作栏.add(修改定价);
setTitle("计算机图书类操作的图形界面");
add(操作栏,BorderLayout.NORTH);
add(显示内容,BorderLayout.CENTER);
add(显示,BorderLayout.SOUTH);
setBounds(300,300,500,500);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==新增计算机图书)
{
String one=出版社栏.getText();
String two=定价栏.getText();
if(Integer.parseInt(two)<0)
{
显示.setText("价格不能为负数");
}
else
{
CMBook mid=new CMBook(one,Integer.parseInt(two));
mid.next=start;
start=mid;
显示内容.append(mid.toString());
}
}
else if(e.getSource()==修改定价)
{
int pricenew;
CMBook point;
String one,two,three;
one=出版社栏.getText();
two=定价栏.getText();
point=start;
while(true)
{
if(point==null)
{
显示.setText("查找不到该类别");
break;
}
if(point.出版社.equals(one))
{
point.定价=Integer.parseInt(two);
显示内容.append("价格修改完成"+point.toString());
break;
}
else
{