图书馆管理系统面向对象编程

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

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("<html><font color=#CC00FF size=‘7‘><i>欢迎登陆</i></font>",SwingConstants.CENTER);

cp.add(JL,"North");

jp2.add(j1);

jp2.add(j2);

cp.add(jp1,"Center");

cp.add("South",jp2);

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

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("sun.jdbc.odbc.JdbcOdbcDriver");

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

try{

String url = "jdbc:odbc:driver={Microsoft 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="select * from user where 用户名=‘"+uname+"‘ and 密码=‘"+Mima+"‘";

ResultSet rs=sql.executeQuery(queryMima);

if(rs.next())

{

new Book(uname);

f.hide();

con.close();

}else{

JOptionPane.showMessageDialog(null,"该用户不存在","提示!",

JOptionPane.YES_NO_OPTION);

}

t1.setText("");

t2.setText("");

} catch(SQLException g)

{

System.out.println("E Code"+g.getErrorCode());

System.out.println("E M"+g.getMessage());

}

}

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.*;

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="xx";

BookBrower()

{

f=new JFrame();

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

jpS=new JPanel();

jpanelWest=new JPanel();

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

jbt1=new JButton("确定");

jbt2=new JButton("返回");

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

label=new JLabel("<html><font color=#CC00FF size=‘4‘>图书概览</font>",SwingConstants.CENTER);

label.setForeground(Color.blue);

L=new JLabel("书库现在共有图书"+count+"本");

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

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

JScrollPane scrollpane = new JScrollPane(table);

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

//布局,添加控件

jpS.add(jbt1);

jpS.add(jbt2);

JPanel jpanel=new JPanel();

jpanel.add(label);

JPanel pp4=new JPanel();

JPanel jpE=new JPanel();

cp.add(jpanel,"North");

JPanel jp=new JPanel();

//jp.add(scrollpane);

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

p.setLayout(new BorderLayout());

p.add(L,"North");

p.add(scrollpane);

cp.add(pp4,"West");

cp.add(p,"Center");

cp.add(jpS,"South");

cp.add(jpE,"East");

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

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);

}

}

);*/

}

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

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("sun.jdbc.odbc.JdbcOdbcDriver");

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

try{

String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connection con=DriverManager.getConnection(url);

String s="select * from book ";

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;

ar[i][3]=writer;

ar[i][4]=publish;

ar[i][5]=indate;

i++;

}

count=""+i+"";

L.setText("书库现在共有图书"+count+"本");

f.repaint();

con.close();

}catch(SQLException g)

{

System.out.println("E Code"+g.getErrorCode());

System.out.println("E M"+g.getMessage());

}

}

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

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("<html><font color=#CC00FF size=‘4‘>请输入图书号:</font>",SwingConstants.CENTER);

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);

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

//布局,添加控件

JPanel jpanel=new JPanel();

jpanel.add(label);

jpanel.add(tf);

JPanel pp4=new JPanel();

JPanel jpane4=new JPanel();

cp.add(jpanel,"North");

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

JPanel pp3=new JPanel();

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

pp4.add(new JLabel("图书名",SwingConstants.CENTER));

pp2.add(tf1);

pp4.add(new JLabel("图书号",SwingConstants.CENTER));

pp2.add(tf2);

pp4.add(new JLabel("单  价",SwingConstants.CENTER));

pp2.add(tf3);

pp4.add(new JLabel("作  者",SwingConstants.CENTER));

pp2.add(tf4);

pp4.add(new JLabel("出版社",SwingConstants.CENTER));

pp2.add(tf5);

pp4.add(new JLabel("入库时间",SwingConstants.CENTER));

pp2.add(tf6);

pp3.add(jbt1);

pp3.add(jbt2);

cp.add(pp4,"West");

cp.add(pp2,"Center");

cp.add(pp3,"South");

cp.add(jpane4,"East");

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

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);//注册监听器

jbt2.addActionListener(this);

/*f3.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);*/

}

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

public void showRecord()

{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

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

try{

String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connection con=DriverManager.getConnection(url);

Statement sql;

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

String s="select * from book  where 图书号 =‘"+ql +"‘";

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);

tf6.setText(indate);

}

else

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

"输入错误", JOptionPane.YES_NO_OPTION);

}

con.close();

}catch(SQLException g)

{

System.out.println("E Code"+g.getErrorCode());

System.out.println("E M"+g.getMessage());

}

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();

}

}

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="xx";

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("<html><font color=#CC00FF size=‘4‘>请输入要删除的图书名:</font>",SwingConstants.CENTER);

label.setForeground(Color.blue);

L=new JLabel("该种图书共有"+count+"本");

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

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,"North");

JPanel jp=new JPanel();

//jp.add(scrollpane);

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

p.setLayout(new BorderLayout());

p.add(L,"North");

p.add(scrollpane);

cp.add(pp4,"West");

cp.add(p,"Center");

cp.add(jpS,"South");

cp.add(jpE,"East");

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

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("sun.jdbc.odbc.JdbcOdbcDriver");

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

try{

String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connection con=DriverManager.getConnection(url);

Statement sql;

String s="select * from book  where 图书名 =‘"+ql +"‘";

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=""+i+"";

L.setText("该种图书共有"+count+"本");

f.repaint();

con.close();System.out.println(ar[0][1]);

}catch(SQLException g)

{

System.out.println("E Code"+g.getErrorCode());

System.out.println("E M"+g.getMessage());

}

}

public void deleteRecord(int index)

{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

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

try{

String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connection con=DriverManager.getConnection(url);

Statement sql;

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

String s="delete * from book  where 图书号 =‘"+ql +"‘";

sql=con.createStatement();

int del=sql.executeUpdate(s);

if(del==1)

{JOptionPane.showMessageDialog(null,"删除成功!",

"信息", JOptionPane.YES_NO_OPTION);

}

con.close();

f.repaint();

}catch(SQLException g)

{

System.out.println("E Code"+g.getErrorCode());

System.out.println("E M"+g.getMessage());

}

}

public void actionPerformed(ActionEvent e)

{

String remember="";

String ql="";

String cmd=e.getActionCommand();

if(cmd.equals("查询"))

{

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

remember=ql;

showRecord(ql);

}

if(cmd.equals("删除"))

{

int index=table.getSelectedRow();

if( index==-1)

JOptionPane.showMessageDialog(null,"请选定要删除的表格行",

"输入错误", JOptionPane.YES_NO_OPTION);

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;

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("<html><font color=#CC00FF size=‘4‘>图书入库</font>",SwingConstants.CENTER);

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("您好"+sno+"欢迎登陆学生信息系统"));

JPanel jpanel=new JPanel();

jpanel.add(label);

JPanel pp4=new JPanel();

JPanel jpane4=new JPanel();

cp.add(jpanel,"North");

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

JPanel pp3=new JPanel();

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

pp4.add(new JLabel("图书名",SwingConstants.CENTER));

pp2.add(tf1);

pp4.add(new JLabel("图书号",SwingConstants.CENTER));

pp2.add(tf2);

pp4.add(new JLabel("单  价",SwingConstants.CENTER));

pp2.add(tf3);

pp4.add(new JLabel("作  者",SwingConstants.CENTER));

pp2.add(tf4);

pp4.add(new JLabel("出版社",SwingConstants.CENTER));

pp2.add(tf5);

pp4.add(new JLabel("入库时间",SwingConstants.CENTER));

pp2.add(tf6);

pp3.add(jbt1);

pp3.add(jbt2);

cp.add(pp4,"West");

cp.add(pp2,"Center");

cp.add(pp3,"South");

cp.add(jpane4,"East");

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

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);//注册监听器

jbt2.addActionListener(this);

/*f3.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);*/

}

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

public void insertRecord()

{

if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||

tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals(""))

{

JOptionPane.showMessageDialog(f3,"请填写图书资料");

return;

}

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

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

try{

String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connection con=DriverManager.getConnection(url);

Statement sql;

String s="insert into book  values(‘"+tf1.getText()+"‘,‘"+tf2.getText()+"‘,‘"+

tf3.getText()+"‘,‘"+tf4.getText()+"‘,‘"+tf5.getText()+"‘,‘"+tf6.getText()+"‘);";

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

String query="select * from book where 图书号=‘"+tf2.getText()+"‘";

sql=con.createStatement();

ResultSet rs=sql.executeQuery(query);//返回查询结果集

boolean moreRecords=rs.next();//判断结果集是否有数据

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("E Code"+g.getErrorCode());

System.out.println("E M"+g.getMessage());

}

}

public void actionPerformed(ActionEvent e)

{

String cmd=e.getActionCommand();

if(cmd.equals("确定"))

{

insertRecord();

}

else if(cmd.equals("取消"))

f3.hide();

}

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,"North");

// 设置边框

jp.setBorder(BorderFactory.createTitledBorder(BorderFactory

.createLineBorder(Color.blue, 2),null,

TitledBorder.CENTER, TitledBorder.TOP));

jp.setLayout(new BorderLayout());

JLabel label1 = new JLabel(new ImageIcon("4.jpg"));

jp.add(label1);

/* JLabel  JL=new JLabel("<html><font color=#CC00FF size=‘7‘><i>欢迎登陆</i></font>",SwingConstants.CENTER);

jp.add(JL,"North");*/

JLabel label2 = new JLabel(new ImageIcon("2.jpg"));

//jp.add(label2,"South");

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("图书删除"))

{

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;

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("<html><font color=#CC00FF size=‘4‘>修改密码</font>",SwingConstants.CENTER);

label.setForeground(Color.blue);

label.setFont(new Font("BOLD",Font.BOLD,15));

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("您好"+"xx"+"欢迎登陆学生信息系统"));

JPanel jpanel=new JPanel();

jpanel.add(label);

JPanel pp4=new JPanel();

JPanel jpane4=new JPanel();

cp.add(jpanel,"North");

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

JPanel pp3=new JPanel();

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

pp4.add(new JLabel("用户名: ",SwingConstants.RIGHT));

pp2.add(name);

pp4.add(new JLabel("原密码: ",SwingConstants.RIGHT));

pp2.add(tf1);

pp4.add(new JLabel(" 新密码: ",SwingConstants.RIGHT));

pp2.add(tf2);

pp4.add(new JLabel("确认密码: ",SwingConstants.RIGHT));

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,"West");

cp.add(pp2,"Center");

//cp.add(pp3,"South");

cp.add(jpane4,"East");

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

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);

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

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

jbt2.addActionListener(this);

/*f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);*/

}

public void updateM()

{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

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

try{

String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connection con=DriverManager.getConnection(url);

Statement sql=con.createStatement();

String uname=name.getText().trim();

String queryMima="select * from user where 用户名=‘"+uname+"‘";

ResultSet rs=sql.executeQuery(queryMima);

if(rs.next())

{

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

String s="update user set 密码=‘"+newMima+"‘ where 用户名 =‘"+uname +"‘";

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);

}

name.setText("");

tf1.setText("");

tf2.setText("");

tf3.setText("");

} catch(SQLException g)

{

System.out.println("E Code"+g.getErrorCode());

System.out.println("E M"+g.getMessage());

}

}

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

public void actionPerformed(ActionEvent e)

{

String cmd=e.getActionCommand();

if(cmd.equals("确定"))

{

if(name.getText().equals("")||tf1.getText().equals("")||tf2.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("");

}

}

时间: 2024-10-14 20:39:18

图书馆管理系统面向对象编程的相关文章

图书馆管理系统 面向对象程序设计

1.概要设计 Reader 读者类.RDatabase 读者库类.Book 图书类.BDatabase 图书库类 2.详细设计 1)类的原型描述 class Reader //读者类 int tag;//删除标记 1:已删 0:未删 int no;//读者编号 char name[10];//读者姓名 int borbook[Maxbor];//所借图书 class RDatabase //读者库类 int top;// 读者记录指针 Reader read[Maxr];// 读者记录 RDat

简单图书馆系统(面向对象编程思想)

//   第一部分为实体类 ,放属性及set,get方法 public class Book { private String No; private String name; private String author; private String pubDate; private double price; private int num;                     //声明book类的属性,并设为私有,用set和get方法存取 public String getNo() {

图书馆管理系统 SRS文档

图书馆管理系统 SRS文档 编写人:魏晓 日期:2015年05月27日 1介绍 1.1编写目的 图书管理系统需求规格说明书是为了让系统的涉众就该系统的需求达成一致认可,明确该系统的需求,为后续的开发工作提供依据.通常,该需求规格说明可以作为产品设计的主要依据,并作为工程师编码时了解软件实际需求的主要参考资料.同时,需求规格说明是产品实现后用于检验的主要考察依据,是测试人员编写测试用例时的主要参考文件.另外,本文档还可以为其他需要了解系统需求的人员提供产品需求的详细说明. 1.2背景 软件系统的名

面向对象编程思想

http://blog.csdn.net/yzh648542313/article/details/34157593 面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计. 它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单

面向对象编程思想 - 月亮晶石的日志 - 网易博客

面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计. 它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统).这可以使系统直接地映射问题域,保

ASP.NET Core 打造一个简单的图书馆管理系统(五)初始化书籍信息

前言: 本系列文章主要为我之前所学知识的一次微小的实践,以我学校图书馆管理系统为雏形所作. 本系列文章主要参考资料: 微软文档:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcore-2.1&tabs=windows <Pro ASP.NET MVC 5>.<锋利的 jQuery> 此系列皆使用 VS2017+C# 作为开发环境.如果有什么问题或者意见欢迎在留言区进行留言.

面向对象编程

面向对象:类,属性,方法 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下

python面向对象编程

java和c#只支持面向对象编程,python即可支持面向对象也可以支持函数式编程. 面向对象两个重要的概念:  1.类 2.对象 函数式 def sendemail(email,msg):            函数 print("8888") 面向对象 class Myclass: def sendmail(self,email,msg):      函数定义在类中第一个参数必须是self print("8888")              函数在类中定义叫方

面向对象编程的一些理解

(1) 简单的说类是对象的模版. 首先我们可以来理解一下对象的概念,面向对象编程的程序实际就是多个对象的集合,我们可以把所有的事物都抽象成对象,在程序设计中可以看作:对象=属性+方法.属性就是对象的数据,而方法就是对象的行为. 下面来说类,就像我开头所说类是对象的模版,而对象是类的实例化.举个例子,饼干模子可以看作是类,而具体的饼干就是对象.再比如有一个类是表示人,然后可以通过人这个模版来实例化出张三.李四... 比如说一个类是描述人的特征,为什么实例化? p = People(); 这个人有很