java课程设计小型图书管理系统

更新时间:2024-06-01 03:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《JAVA数据库应用开发》实训报告

课题名称: 图书管理系统设计与实现

专 业: 计算机应用技术 班 级: 计算机应用ZB1001 学 号: 2010920963 姓 名: 胡况 成 绩:_________________________

计算机学院

二〇一一 年 月 日

1

目 录

课程设计目的………………………………………… 课程设计题目描述和要求…………………………… 课程设计报告内容…………………………………… 结论…………………………………………………… 结束语…………………………………………………

2

一、课程设计目的

通过项目驱动的学习和综合实训,熟练掌握运用Java语言进行桌面应用程序开发的基本知识和技能;熟练掌握JAVA的基本语法与JDBC数据库技术的应用;进一步熟悉SQL Server数据库的数据库管理(数据库的创建、备份与恢复、函数与存储过程的应用、数据导入导出、作业的调度等)、表的设计(表的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、update、delete、select语句的应用)等技术;并能结合数据库应用技术和软件工程技术进行桌面应用程序的开发,能基本胜任Java桌面开发程序员的岗位。

二、课程设计题目描述和要求

图书管理系统,是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。其功能一般包括:图书信息管理、用户信息管理、图书借阅、图书归还、违约与毁坏赔偿、图书借还查询等等。

三、课程设计报告内容

3.1设计方案的论证:

需求分析主要任务是开发者和用户共同研究确定本系统需要实现哪些具体的功能、需要对哪些数据信息进行处理、这些数据描述存在哪些具体的要求以及对系统性能、安全性等方面的详细要求,以便为开发者的设计和用户的验收提供依据。随着现代化技术的提高,学校为了方便于学生的借阅,因此建立了一个图书馆数据库,方便管理! 3.2需求功能的描述。

1、图书馆信息管理:条形码、书名、作者、价格。 2、借出管理:条形码、书名、作者、日期、学生信息。

3、归还管理:条形码、书名、作者、日期、学生信息、是否损坏。 3.2.1学生管理

1、姓名:15个汉字以内,可以带有特殊符号。 2、班级:在20个汉字以内。

3、学号:6-10个数字组成,不能有特殊符号。 3.2.2图书管理

3

1、图书名称:5-15个字母或汉字组成,可带特殊符号。 2、图书编号:5-10个数字或字母组成,不能有特殊符号。 3、图书作者:5-20个汉字或字母组成,可带特殊符号。 4、图书损坏:如有损坏按原价赔偿。

5、图书归还:从登记借阅后算起,一个月内(30天)归还,如超期按每天5元赔偿。

6、图书预订:如借阅时你想借阅的书已被借走,可以登记提前预订。 以上的条目各科目可自己行设计

比如硬件设计:在设计报告中要列出主要芯片的参数、逻辑功能;给出硬件线路图及原理介绍以及必要的计算等。

软件设计:详细介绍软件设计的功能、思想、算法、模块的划分、给出算法的逻辑框图等。

图像设计类:可写出主要功能、思想、实现手法效果图等

4

系统流程图

说明:

首先是输入判断,相当于在登陆模块,要求用户输入用户名和密码;然后判断,如果判断失败退出系统,否则进入图书管理系统的主界面。进入主界面后,用户要选择所需执行的功能,即通过鼠标点击相应项,来完成所需操作。

退出 图书查询 图书入库 图书删除 图书概览 修改密码 判断 成功 系统开始 判断 输入密码 失败 退出 5

数据库表 表book 表user 图书名 图书号 单价 作者 出版社 入库时间 用户名 密码

数据库设计

1.表book 字段名称 图书名 图书号 单价 作者 出版社 入库时间

2.表user 字段名称 用户名 密码

数据类型 文本

文本(主键) 文本 文本 文本 文本

数据类型 文本(主键) 文本

系统源码

程序代码

1登陆界面:程序名Login.java

6

import java.awt.event.*; import javax.swing.*; import java.awt.*;

import java.awt.Container; import java.util.*; import java.sql.*;

class Login extends JFrame implements ActionListener { Container cp=null; JFrame f=null; JButton j1,j2; JTextField t1; JPasswordField t2;

JLabel jlable1,jlable2; Color c;

JPanel jp1,jp2;

Login(){

f=new JFrame(\小型图书管理系统\ j1=new JButton(\确定\ j2=new JButton(\取消\ cp=f.getContentPane();

jlable1=new JLabel(\输入用户名\ jlable2=new JLabel(\用户密码\

jp1=new JPanel(); jp2=new JPanel();

t1=new JTextField(18); t2=new JPasswordField(18);

jp1.add(jlable1); jp1.add(t1);

jp1.add(jlable2); jp1.add(t2);

JLabel JL=new JLabel(\欢迎登陆\ cp.add(JL,\ jp2.add(j1); jp2.add(j2);

cp.add(jp1,\ cp.add(\

jp1.setBackground(new Color(255,153,255));

7

Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();

int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ //setSize(x,y); /*让系统窗口平铺整个显示器窗口*/

f.setSize(300,300); int xcenter=(x-300)/2; int ycenter=(y-300)/2;

f.setLocation(xcenter,ycenter);/*显示在窗口中央*/

f.setVisible(true);

//----------------------------------------------------- j1.addActionListener(this);//注册事件监听器 j2.addActionListener(this);

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0); } } ); }

public void confirm()//验证用户和密码是否存在 {

try{

Class.forName(\

}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\

try{

String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql=con.createStatement(); String uname=t1.getText().trim(); String Mima=t2.getText().trim();

String queryMima=\用户名='\密码='\

ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) {

new Book(uname); f.hide();

8

con.close(); }else{

JOptionPane.showMessageDialog(null,\该用户不存在\提示!\ JOptionPane.YES_NO_OPTION); }

t1.setText(\ t2.setText(\

} catch(SQLException g) {

System.out.println(\ System.out.println(\ }

}

public void actionPerformed(ActionEvent e) {

String cmd=e.getActionCommand(); if(cmd.equals(\确定\ confirm(); }

else if(cmd.equals(\取消\ f.dispose(); } }

public static void main(String []arg){

Login a=new Login(); } }

2图书概览:程序名BookBrower.java import java.awt.event.*; import javax.swing.*; import java.awt.*;

import java.awt.Container; import java.util.*; import java.sql.*;

9

class BookBrower implements ActionListener {

JFrame f; Container cp;

JPanel jpS,jpanelWest;

JButton jbt1,jbt2;//按钮,查询、取消、修改 JLabel label,L; //标签 //定义文本框

JTable table;//用来接收数据库中返回的信息

Object columnName[]={\图书名\图书号\单价\作者\出版社\入库时间\ Object ar[][] =new Object[80][6]; String sno;

String count=\

BookBrower() {

f=new JFrame();

cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框 jpS=new JPanel(); jpanelWest=new JPanel();

//------------------------------------------------ jbt1=new JButton(\确定\ jbt2=new JButton(\返回\

//------------------------------------------------

label=new JLabel(\color=#CC00FF size='4'>图书概览\ label.setForeground(Color.blue);

L=new JLabel(\书库现在共有图书\本\

//------------------------------------------------

table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名 JScrollPane scrollpane = new JScrollPane(table);

//------------------------------------------------ //布局,添加控件

jpS.add(jbt1);

jpS.add(jbt2);

10

JPanel jpanel=new JPanel(); jpanel.add(label);

JPanel pp4=new JPanel(); JPanel jpE=new JPanel();

cp.add(jpanel,\ JPanel jp=new JPanel(); //jp.add(scrollpane);

JPanel p=new JPanel();//用来放两个表 p.setLayout(new BorderLayout());

p.add(L,\ p.add(scrollpane);

cp.add(pp4,\ cp.add(p,\ cp.add(jpS,\

cp.add(jpE,\

//------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();

int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ f.setSize(400,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2;

f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true);

//------------------------------------------------- jbt1.addActionListener(this);//注册监听器 jbt2.addActionListener(this);

/* f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0); } }

11

);*/ }

//------------------------------------------------ int i=0;

public void showRecord() {

while(i>=0) {

ar[i][0]=\ ar[i][1]=\ ar[i][2]=\ ar[i][3]=\ ar[i][4]=\ ar[i][5]=\ i--; } i=0;

try{

Class.forName(\

}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\

try{

String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url);

String s=\

Statement sql=con.createStatement(); ResultSet rs=sql.executeQuery(s);

while(rs.next()) {

String bname=rs.getString(1); String bno=rs.getString(2); String price=rs.getString(3); String writer=rs.getString(4); String publish=rs.getString(5); String indate=rs.getString(6); ar[i][0]=bname; ar[i][1]=bno; ar[i][2]=price;

12

ar[i][3]=writer; ar[i][4]=publish; ar[i][5]=indate; i++; }

count=\

L.setText(\书库现在共有图书\本\ f.repaint();

con.close(); }catch(SQLException g) {

System.out.println(\ System.out.println(\ } }

public void actionPerformed(ActionEvent e) {

String cmd=e.getActionCommand(); if(cmd.equals(\确定\ {

f.hide(); }

if(cmd.equals(\返回\ f.hide(); }

public static void main(String []arg){

BookBrower a=new BookBrower(); a.showRecord(); } }

3图书查询:程序名QueryBook.java

13

import java.awt.event.*; import javax.swing.*; import java.awt.*;

import java.awt.Container; import java.util.*; import java.sql.*;

class QueryBook implements ActionListener {

JFrame f3; Container cp;

JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;//按钮,确定、取消

JLabel label; //标签:请输入图书号

JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6; //定义文本框 JLabel label1,label2,label3,label4;

QueryBook() {

f3=new JFrame();

cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel();

jpanelWest=new JPanel(); jp=new JPanel();

//------------------------------------------------ jbt1=new JButton(\确定\ jbt2=new JButton(\取消\

//------------------------------------------------

label=new JLabel(\color=#CC00FF size='4'>请输入图书号:\ label.setForeground(Color.blue); tf=new JTextField(20);

//------------------------------------------------ tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); tf5=new JTextField(20); tf6=new JTextField(20);

14

//------------------------------------------------ //布局,添加控件

JPanel jpanel=new JPanel(); jpanel.add(label); jpanel.add(tf);

JPanel pp4=new JPanel(); JPanel jpane4=new JPanel();

cp.add(jpanel,\

JPanel pp2=new JPanel(new GridLayout(6,1)); JPanel pp3=new JPanel();

pp4.setLayout(new GridLayout(6,1));

pp4.add(new JLabel(\图书名\

pp2.add(tf1);

pp4.add(new JLabel(\图书号\ pp2.add(tf2);

pp4.add(new JLabel(\单 价\ pp2.add(tf3);

pp4.add(new JLabel(\作 者\ pp2.add(tf4);

pp4.add(new JLabel(\出版社\ pp2.add(tf5);

pp4.add(new JLabel(\入库时间\ pp2.add(tf6); pp3.add(jbt1); pp3.add(jbt2);

cp.add(pp4,\ cp.add(pp2,\ cp.add(pp3,\

cp.add(jpane4,\

//------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();

int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2;

15

f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f3.setVisible(true);

//------------------------------------------------- jbt1.addActionListener(this);//注册监听器 jbt2.addActionListener(this);

/*f3.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0); } } );*/ }

//------------------------------------------------ public void showRecord() {

try{

Class.forName(\

}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\

try{

String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;

String ql=tf.getText().trim();

String s=\图书号 ='\ sql=con.createStatement();

ResultSet rs=sql.executeQuery(s); if(rs.next()) {

String bname=rs.getString(1); String bno=rs.getString(2); String price=rs.getString(3); String writer=rs.getString(4); String publish=rs.getString(5); String indate=rs.getString(6); tf1.setText(bname); tf2.setText(bno); tf3.setText(price); tf4.setText(writer); tf5.setText(publish);

16

tf6.setText(indate); }

else

{JOptionPane.showMessageDialog(null,\您输入的图书号不存在,请重新输入\

\输入错误\ }

con.close();

}catch(SQLException g) {

System.out.println(\ System.out.println(\ }

tf1.setEditable(false); tf2.setEditable(false); tf3.setEditable(false); tf4.setEditable(false); tf5.setEditable(false); tf6.setEditable(false);

}

public void actionPerformed(ActionEvent e) {

String cmd=e.getActionCommand(); if(cmd.equals(\确定\ {

showRecord(); tf.setText(\ }

else if(cmd.equals(\取消\ f3.hide(); }

public static void main(String []arg){

QueryBook a=new QueryBook();

17

} }

4图书删除:程序名RemoveBook.java

import java.awt.event.*; import javax.swing.*; import java.awt.*;

import java.awt.Container; import java.util.*; import java.sql.*;

class RemoveBook implements ActionListener {

JFrame f; Container cp;

JPanel jpS,jpanelWest;

JButton jbt1,jbt2,jbt3;//按钮,查询、取消、修改 JLabel label,L; //标签:请输入学号 JTextField tf; //定义文本框

JTable table;//用来接收数据库中返回的信息

Object columnName[]={\图书名\图书号\单价\作者\出版社\入库时间\ Object ar[][] =new Object[80][6]; String sno;

String count=\

RemoveBook() {

f=new JFrame();

cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框 jpS=new JPanel(); jpanelWest=new JPanel();

//------------------------------------------------ jbt1=new JButton(\查询\ jbt2=new JButton(\取消\ jbt3=new JButton(\删除\

//------------------------------------------------

label=new JLabel(\请输入要删除的图书名:\

18

label.setForeground(Color.blue);

L=new JLabel(\该种图书共有\本\

//------------------------------------------------

table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名 JScrollPane scrollpane = new JScrollPane(table);

//------------------------------------------------ tf=new JTextField(18);

//------------------------------------------------

//------------------------------------------------ //布局,添加控件

jpS.add(jbt1);

jpS.add(jbt2); jpS.add(jbt3);

JPanel jpanel=new JPanel(); jpanel.add(label); jpanel.add(tf);

JPanel pp4=new JPanel(); JPanel jpE=new JPanel();

cp.add(jpanel,\ JPanel jp=new JPanel(); //jp.add(scrollpane);

JPanel p=new JPanel();//用来放两个表 p.setLayout(new BorderLayout());

p.add(L,\ p.add(scrollpane);

cp.add(pp4,\ cp.add(p,\ cp.add(jpS,\

cp.add(jpE,\

19

//------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();

int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ f.setSize(400,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2;

f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true);

//------------------------------------------------- jbt1.addActionListener(this);//注册监听器 jbt2.addActionListener(this); jbt3.addActionListener(this);

/*f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0); } } );*/ }

//------------------------------------------------ int i=0;

public void showRecord(String ql) {

while(i>=0) {

ar[i][0]=\ ar[i][1]=\ ar[i][2]=\ ar[i][3]=\ ar[i][4]=\ ar[i][5]=\ i--; } i=0;

try{

Class.forName(\

}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\

try{

20

String url = \Access (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;

String s=\图书名 ='\ sql=con.createStatement();

ResultSet rs=sql.executeQuery(s);

while(rs.next()) {

String bname=rs.getString(1); String bno=rs.getString(2); String price=rs.getString(3); String writer=rs.getString(4); String publish=rs.getString(5); String indate=rs.getString(6); ar[i][0]=bname; ar[i][1]=bno; ar[i][2]=price; ar[i][3]=writer; ar[i][4]=publish; ar[i][5]=indate; i++; }

count=\

L.setText(\该种图书共有\本\

f.repaint();

con.close();System.out.println(ar[0][1]); }catch(SQLException g) {

System.out.println(\ System.out.println(\ }

}

public void deleteRecord(int index)

21

Driver

{ try{

Class.forName(\

}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\

try{

String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;

String ql=(String)(ar[index][1]);

String s=\图书号 ='\ sql=con.createStatement(); int del=sql.executeUpdate(s); if(del==1)

{JOptionPane.showMessageDialog(null,\删除成功!\ \信息\ }

con.close(); f.repaint();

}catch(SQLException g) {

System.out.println(\ System.out.println(\ }

}

public void actionPerformed(ActionEvent e) {

String remember=\ String ql=\

String cmd=e.getActionCommand(); if(cmd.equals(\查询\ {

ql=tf.getText().trim(); remember=ql; showRecord(ql); }

22

if(cmd.equals(\删除\ {

int index=table.getSelectedRow(); if( index==-1)

JOptionPane.showMessageDialog(null,\请选定要删除的表格行\ \输入错误\

else{

deleteRecord(index); //showRecord(remember); } }

if(cmd.equals(\取消\ f.hide(); }

public static void main(String []arg){

RemoveBook a=new RemoveBook(); } }

5图书入库:程序名BookIn.java import java.awt.event.*; import javax.swing.*; import java.awt.*;

import java.awt.Container; import java.util.*; import java.sql.*;

import javax.swing.text.JTextComponent;

//extends JFrame

class BookIn implements ActionListener {

JFrame f3; Container cp;

JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;//按钮:确定、取消、 JLabel label; //标签

JTextField tf1,tf2,tf3,tf4,tf5,tf6; // JLabel label1,label2,label3,label4;

23

定义文本框

String sno; BookIn() {

f3=new JFrame();

cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel();

jpanelWest=new JPanel(); jp=new JPanel();

//------------------------------------------------ jbt1=new JButton(\确定\ jbt2=new JButton(\取消\

//------------------------------------------------

label=new JLabel(\color=#CC00FF size='4'>\ label.setForeground(Color.blue);

//------------------------------------------------ tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); tf5=new JTextField(20); tf6=new JTextField(20);

//------------------------------------------------ //布局,添加控件

jp1.add(jbt1); jp1.add(jbt2);

sno=tf4.getText();

jp1.add(new JLabel(\您好\欢迎登陆学生信息系统\

JPanel jpanel=new JPanel(); jpanel.add(label);

24

书入库图

JPanel pp4=new JPanel(); JPanel jpane4=new JPanel();

cp.add(jpanel,\

JPanel pp2=new JPanel(new GridLayout(6,1)); JPanel pp3=new JPanel();

pp4.setLayout(new GridLayout(6,1));

pp4.add(new JLabel(\图书名\

pp2.add(tf1);

pp4.add(new JLabel(\图书号\ pp2.add(tf2);

pp4.add(new JLabel(\单 价\ pp2.add(tf3);

pp4.add(new JLabel(\作 者\ pp2.add(tf4);

pp4.add(new JLabel(\出版社\ pp2.add(tf5);

pp4.add(new JLabel(\入库时间\ pp2.add(tf6); pp3.add(jbt1);

pp3.add(jbt2);

cp.add(pp4,\ cp.add(pp2,\ cp.add(pp3,\

cp.add(jpane4,\

//------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();

int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2;

f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f3.setVisible(true);

//------------------------------------------------- jbt1.addActionListener(this);//注册监听器

25

jbt2.addActionListener(this);

/*f3.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0); } } );*/ }

//------------------------------------------------ public void insertRecord() {

if(tf1.getText().equals(\||

tf4.getText().equals(\ {

JOptionPane.showMessageDialog(f3,\请填写图书资料\ return; }

try{

Class.forName(\

}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\

try{

String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;

String s=\into book values('\

tf3.getText()+\');\

//查询输入的图书号是否在数据库中存在

String query=\图书号='\ sql=con.createStatement();

ResultSet rs=sql.executeQuery(query);//返回查询结果集 boolean moreRecords=rs.next();//判断结果集是否有数据

26

if(moreRecords) {

JOptionPane.showMessageDialog(f3,\图书号已经被使用,请重新输入\

con.close(); tf2.setText(\ return; }

int insert=sql.executeUpdate(s); if(insert==1) {

JOptionPane.showMessageDialog(null,\图书信息录入成功!\ tf1.setText(\ tf2.setText(\ tf3.setText(\ tf4.setText(\ tf5.setText(\ tf6.setText(\ }

}catch(SQLException g) {

System.out.println(\ System.out.println(\ }

}

public void actionPerformed(ActionEvent e) {

String cmd=e.getActionCommand(); if(cmd.equals(\确定\ {

insertRecord(); }

else if(cmd.equals(\取消\ f3.hide(); }

27

public static void main(String []arg){

BookIn a=new BookIn(); } }

6主界面:程序名Book.java /*本类为用户界面*/

import java.net.*; import java.sql.*; import java.awt.*;

import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*;

import javax.swing.border.*;import java.util.*;

class Book extends JFrame implements ActionListener {

JButton QueryScore=new JButton(\图书查询\ JButton QueryXuefen=new JButton(\图书入库\ JButton jiangfa=new JButton(\图书删除\ JButton xuanke=new JButton(\图书概览\ JButton gaiMima=new JButton(\修改密码\ JMenuBar mb = new JMenuBar();//菜单栏 JPanel jp=new JPanel();//用来填放子模块 Container cp=getContentPane(); String username; Book(){}

Book(String username) {

this.username=username; mb.add(QueryScore); mb.add(QueryXuefen); mb.add(jiangfa); mb.add(xuanke); mb.add(gaiMima); cp.add(mb,\

// 设置边框

jp.setBorder(BorderFactory.createTitledBorder(BorderFactory .createLineBorder(Color.blue, 2),null, TitledBorder.CENTER, TitledBorder.TOP)); jp.setLayout(new BorderLayout());

28

JLabel label1 = new JLabel(new ImageIcon(\ jp.add(label1);

/* JLabel JL=new JLabel(\欢迎登陆\ jp.add(JL,\

JLabel label2 = new JLabel(new ImageIcon(\ //jp.add(label2,\

JScrollPane scrollpane=new JScrollPane(jp); cp.add(scrollpane); setTitle(\欢迎登陆\

Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();

int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ //setSize(x,y); /*让系统窗口平铺整个显示器窗口*/

setSize(600,600); int xcenter=(x-600)/2; int ycenter=(y-600)/2;

setLocation(xcenter,ycenter);/*显示在窗口中央*/

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //注册临听器

QueryScore.addActionListener(this); QueryXuefen.addActionListener(this); jiangfa.addActionListener(this); xuanke.addActionListener(this); gaiMima.addActionListener(this); }

public void actionPerformed(ActionEvent e) {

String cmd=e.getActionCommand(); if (cmd.equals(\图书查询\ {

new QueryBook(); }

if (cmd.equals(\图书入库\ {

new BookIn(); }

if (cmd.equals(\图书删除\

29

{

new RemoveBook(); }

if (cmd.equals(\图书概览\ {

new BookBrower().showRecord(); }

if (cmd.equals(\修改密码\ {

new UpdateMima(username); }

}

public static void main(String[]args) {

new Book(\ } }

7.密码修改:程序名UpdateMima.java import java.net.*; import java.sql.*; import java.awt.*;

import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*;

class UpdateMima extends JFrame implements ActionListener {

JFrame f; Container cp;

JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;//按钮,确定、取消

JLabel label; //标签:修改密码 JTextField name;

JPasswordField tf1,tf2,tf3; //定义文本框 JLabel label1,label2,label3,label4;

30

String sno; UpdateMima(){}

UpdateMima(String username) {

sno=username; f=new JFrame();

cp=f.getContentPane(); // 初始化 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel();

jpanelWest=new JPanel(); jp=new JPanel();

//------------------------------------------------ jbt1=new JButton(\确定\ jbt2=new JButton(\取消\

//------------------------------------------------

label=new JLabel(\color=#CC00FF size='4'>\ label.setForeground(Color.blue);

label.setFont(new Font(\ name=new JTextField(20); //name.setEditable(false);

//------------------------------------------------ tf1=new JPasswordField(20); tf2=new JPasswordField(20); tf3=new JPasswordField(20);

//------------------------------------------------ //布局,添加控件

jp1.add(jbt1); jp1.add(jbt2);

jp1.add(new JLabel(\您好\欢迎登陆学生信息系统\

JPanel jpanel=new JPanel(); jpanel.add(label);

JPanel pp4=new JPanel();

31

修改密码

JPanel jpane4=new JPanel();

cp.add(jpanel,\

JPanel pp2=new JPanel(new GridLayout(6,1)); JPanel pp3=new JPanel();

pp4.setLayout(new GridLayout(6,1));

pp4.add(new JLabel(\用户名: \ pp2.add(name);

pp4.add(new JLabel(\原密码: \

pp2.add(tf1);

pp4.add(new JLabel(\新密码: \ pp2.add(tf2);

pp4.add(new JLabel(\确认密码: \ pp2.add(tf3);

pp2.add(new JLabel());

JPanel jpbutton=new JPanel(); jpbutton.add(jbt1); jpbutton.add(jbt2); pp2.add(jpbutton);

//pp3.add(jbt1);

//pp3.add(jbt2);

cp.add(pp4,\ cp.add(pp2,\ //cp.add(pp3,\

cp.add(jpane4,\

//------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();

int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height;

f.setSize(350,330); /*取得显示器窗口的高度*/ int xcenter=(x-350)/2; int ycenter=(y-330)/2;

f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ //f.setTitle(\修改密码\ f.setVisible(true);

32

//------------------------------------------------- jbt1.addActionListener(this);//注册监听器 jbt2.addActionListener(this);

/*f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){ System.exit(0); } } );*/ }

public void updateM() {

try{

Class.forName(\

}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\

try{

String url = \Access Driver (*.mdb)};DBQ=Book.mdb\ Connection con=DriverManager.getConnection(url);

Statement sql=con.createStatement(); String uname=name.getText().trim();

String queryMima=\用户名='\ ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) {

String newMima=tf2.getText().trim();

String s=%user set 密码='\where 用户名 ='\

sql=con.createStatement();

int updateMima=sql.executeUpdate(s); if(updateMima==1) {

JOptionPane.showMessageDialog(f,\密码修改成功!\ }

con.close(); f.repaint(); }else{

JOptionPane.showMessageDialog(null,\该用户不存在\警告!\ JOptionPane.YES_NO_OPTION);

33

}

name.setText(\ tf1.setText(\ tf2.setText(\ tf3.setText(\ } catch(SQLException g) {

System.out.println(\ System.out.println(\ }

}

//------------------------------------------------ public void actionPerformed(ActionEvent e) {

String cmd=e.getActionCommand(); if(cmd.equals(\确定\ {

if(name.getText().equals(\)||tf3.getText().equals(\ {

JOptionPane.showMessageDialog(null,\请填写用户的所有信息\提示\

JOptionPane.YES_NO_OPTION); return; }

if(tf2.getText().trim().equals(tf3.getText().trim())) updateM(); }

else if(cmd.equals(\取消\ f.hide(); }

public static void main(String[]args) {

new UpdateMima(\ } }

34

四.界面设计

35

本文来源:https://www.bwwdw.com/article/xck6.html

Top