图书信息管理系统
课程设计:图书信息管理系统
设计人员:林俊柱
开发环境: eclipse
数据库: sql server 2005
说明: 数据库里面的用户名为”sa”, 密码为:”1111”
登录程序所用的用户名为: ljz ,密码为: 0000,
当然,也可以使用注册功能,注册完成后使用自己的用户名和密码登录
设计思路:该图书信息管理系统主要便于图书管理员管理教师的书籍借阅情况。
该程序实现的功能总共有五个板块:
1、教师信息管理: 包含了增加、删除、修改、查询教师信息等功能;
2、图书信息管理: 包含了增加、删除、修改、查询图书信息等功能;
3、借书登记: 登记教师借阅图书的相关信息;
4、还书登记: 登记教师归还图书的相关信息;
5、催还: 查询出并列出教师借阅图书超过期限的相关信息,以便催促教师还书.
数据库的设计思路为:
Teacher(读者号,姓名,性别,年龄,部门,联系方式)
Book(ISBN,书名,作者,出版社,价格,类型)
Borrow(读者号,ISBN,借阅日期,归还日期,办理人,归还办理人)
(横线为主键,蓝色字体为外键)
管理员信息表:
Administrator(管理员编号,管理员密码,管理员姓名,性别,年龄,联系电话)
数据库的连接:
publicclass Dataclass {
privatestatic Connection conn = null;
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Java课程设计数据库 ";
String userName="sa"; //默认用户名
String userPwd="1111"; //密码
//构造函数
public Dataclass(){ //用于连接数库
try {
if (conn == null) {
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);
}
else
return;
}
catch (Exception e) { //捕获数据库连接不成功异常
e.printStackTrace();
}
}
publicstatic ResultSet executeQuery(String sql) { //传送返回结果集的SQL语句
try {
if(conn==null)
new Dataclass(); //调用构造函数连接数据库
returnconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(sql); //返回可滚动的并发事件
}
catch (SQLException e) { //捕获访问数据库失败异常
e.printStackTrace();
returnnull;
}
}
publicstaticboolean executeUpdate(String sql) { //发送不返回结果集的SQL语句
try {
if(conn==null)
new Dataclass(); //调用构造函数连接数据库
int i = conn.createStatement().executeUpdate(sql);
if(i != 0)
returntrue;
}
catch (SQLException e) { //捕获访问数据库失败异常
System.out.println(e.getMessage());
returnfalse; //不成功返回-1
}
returnfalse;
}
publicstaticvoid close() { //断开数据库连接方法
try {
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
finally{
conn = null; //设置数据库连接对象为空
}
}
}
登录界面的实现:
代码为:
publicclass KCSJDL extends JFrame{
JTextField textField1;
JPasswordField textField2;
public KCSJDL(){
try{// 设置Windows观感
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}catch(Exception e){
System.out.println("Look and Feel Exception");
System.exit(0);
}
setTitle("图书管理系统登录界面");
setBounds(400, 200, 376, 300);
setResizable(false);
Container con=getContentPane();
JLabel lblNewLabel = new JLabel();
lblNewLabel.setIcon(new ImageIcon("images/head.jpg"));
JPanel Jpanel1 = new JPanel();
Jpanel1.setLayout(new GridLayout(2, 1, 0, 0));
JPanel Jpanel1_1 = new JPanel();
Jpanel1_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 30));
Jpanel1.add(Jpanel1_1);
JLabel lblNewLabel2 = new JLabel(" 管理员编号:");
Jpanel1_1.add(lblNewLabel2);
textField1 = new JTextField();
Jpanel1_1.add(textField1);
textField1.setColumns(25);
JPanel Jpanel1_2 = new JPanel();
Jpanel1_2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jpanel1.add(Jpanel1_2);
JLabel label_1 = new JLabel(" 管理员密码:");
Jpanel1_2.add(label_1);
textField2 = new JPasswordField();
Jpanel1_2.add(textField2);
textField2.setColumns(25);
JPanel Jpanel2 = new JPanel();
JLabel label = new JLabel(" ");
JButton button1 = new JButton(" 登录 ");
JButton button2 = new JButton(" 注册 ");
Jpanel2.add(label);
Jpanel2.add(button1);
Jpanel2.add(button2);
con.add(lblNewLabel,"North");
con.add(Jpanel1,"Center");
con.add(Jpanel2,"South");
textField1.addActionListener(new KCSJDLEvent(this));
textField2.addActionListener(new KCSJDLEvent(this));
button1.addActionListener(new KCSJDLEvent(this));
button2.addActionListener(new KCSJDLEvent(this));
}
publicstaticvoid main(String []args){
KCSJDL test = new KCSJDL();
test.setVisible(true);
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
注册界面的实现:
代码为:
publicclass KCSJZC extends JFrame{
private ButtonGroup buttonGroup = new ButtonGroup();
JTextField textField1_1;
JTextField textField2_1;
JTextField textField3_1;
JTextField textField4_1;
JTextField textField4_2;
JRadioButton radioButton1;
JRadioButton radioButton2;
public KCSJZC(){
try{// 设置Windows观感
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}catch(Exception e){
System.out.println("Look and Feel Exception");
System.exit(0);
}
setTitle("注册");
setBounds(400, 200,500,550);
setResizable(false);
Container con=getContentPane();
JLabel lblNewLabel = new JLabel();
lblNewLabel.setIcon(new ImageIcon("images/ZC.png"));
con.add(lblNewLabel,"North");
JPanel Jpanel = new JPanel();
Jpanel.setBorder(new TitledBorder(null, "管理员注册", TitledBorder.CENTER, TitledBorder.TOP, null, null));
Jpanel.setLayout(new GridLayout(5, 1, 0, 0));
con.add(Jpanel,"Center");
JPanel J1 = new JPanel();
J1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jpanel.add(J1);
JLabel lb1_1 = new JLabel("管理员编号:");
textField1_1 = new JTextField();
textField1_1.setColumns(20);
JLabel lb1_2 = new JLabel(" ");
J1.add(lb1_1);
J1.add(textField1_1);
J1.add(lb1_2);
JPanel J2 = new JPanel();
J2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jpanel.add(J2);
JLabel lb2_1 = new JLabel("管理员密码:");
textField2_1 = new JTextField();
textField2_1.setColumns(20);
JLabel lb2_2 = new JLabel(" 确认密码:");
JTextField textField2_2 = new JTextField();
textField2_2.setColumns(20);
J2.add(lb2_1);
J2.add(textField2_1);
J2.add(lb2_2);
J2.add(textField2_2);
JPanel J3 = new JPanel();
J3.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jpanel.add(J3);
JLabel lb3_1 = new JLabel("管理员姓名:");
textField3_1 = new JTextField();
textField3_1.setColumns(20);
JLabel lb3_2 = new JLabel(" 性 别:");
radioButton1 = new JRadioButton(" 男");//" "
buttonGroup.add(radioButton1);
JLabel lb3_3 = new JLabel(" ");
radioButton2 = new JRadioButton(" 女");
buttonGroup.add(radioButton2);
J3.add(lb3_1);
J3.add(textField3_1);
J3.add(lb3_2);
J3.add(radioButton1);
J3.add(lb3_3);
J3.add(radioButton2);
JPanel J4 = new JPanel();
J4.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jpanel.add(J4);
JLabel lb4_1 = new JLabel("年 龄 :");
textField4_1 = new JTextField();
textField4_1.setColumns(20);
JLabel lb4_2 = new JLabel(" 联系电话:");
textField4_2 = new JTextField();
textField4_2.setColumns(20);
J4.add(lb4_1);
J4.add(textField4_1);
J4.add(lb4_2);
J4.add(textField4_2);
JPanel J5 = new JPanel();
J5.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jpanel.add(J5);
JButton Jb1 = new JButton(" 注册 ");
Jb1.setIcon(new ImageIcon("images/JY.png"));
Jb1.addActionListener(new enrollEvent(this));
JButton Jb2 = new JButton("返回登录界面");
Jb2.setIcon(new ImageIcon("images/GH.png"));
Jb2.addActionListener(new enrollEvent(this));
J5.add(Jb1);
J5.add(Jb2);
}
}
首页界面的实现:
代码为:
class KCSJMain extends JFrame {
JButton Jbutton[] = new JButton[6];
JPanel Jpanel;
JPanel Jpanel1;
JPanel Jpanel2;
JPanel Jpanel3;
JPanel Jpanel4;
JPanel Jpanel5;
JTextField textField_1;
JTextField textField_2;
JTextField textField_3;
JTextField textField_4;
JTextField textField_5;
public KCSJMain(){
try{// 设置Windows观感
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}catch(Exception e){
System.out.println("Look and Feel Exception");
System.exit(0);
}
setTitle("图书管理系统");
setBounds(150, 150, 950, 620);
setResizable(false);
Container con=getContentPane();
String str[] = {" 首页 ","教师信息管理","图书信息管理"," 借书登记 "," 还书登记 "," 催还 "};
String Pfilename[] = {"images/c6.png","images/p1.png","images/p2.png","images/p3.png","images/p4.png","images/p5.png"};
for(int i = 0;i < str.length;i++){
Jbutton[i] = new JButton(str[i]);
Jbutton[i].setIcon(new ImageIcon(Pfilename[i]));
Jbutton[i].setHorizontalTextPosition(JButton.CENTER);
Jbutton[i].setVerticalTextPosition(JButton.BOTTOM);
}
JPanel panel = new JPanel();
panel.setBorder(new LineBorder(Color.LIGHT_GRAY));
for(int i = 0;i < str.length;i++){
panel.add(Jbutton[i]);
}
//左边
JPanel jpanel = new JPanel();
jpanel.setBorder(new LineBorder(Color.LIGHT_GRAY));
jpanel.setLayout(new BoxLayout(jpanel, BoxLayout.Y_AXIS));
JPanel panel_1 = new JPanel();
panel_1.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "欢迎使用图书管理系统", TitledBorder.CENTER, TitledBorder.TOP, null, new Color(0, 0, 0)));
jpanel.add(panel_1);
JTextArea textArea = new JTextArea();
textArea.setColumns(30);
textArea.setRows(5);
textArea.setText("【功能简要介绍】:\n 该系统可以对教师读者以及图 \n 书进行管理,包括增删改查等功能\n ,方便于管理,是管理员的小小\n 助手!");
textArea.setBackground(SystemColor.control);
textArea.setEditable(false);
panel_1.add(textArea);
JPanel panel_2 = new JPanel();
panel_2.setBorder(new TitledBorder(null, "您好,欢迎登录图书管理系统", TitledBorder.CENTER, TitledBorder.TOP, null, null));
jpanel.add(panel_2);
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(5, 1, 0, 0));
panel_2.add(jp);
String str1[] = {"管理员编号:","管理员姓名:"," 性别: "," 年龄: "," 联系电话: "};
JPanel JP[] = new JPanel[str1.length];
JLabel label[] = new JLabel[str1.length];
for(int i = 0;i < str1.length;i++){
JP[i] = new JPanel();
label[i]= new JLabel(str1[i]);
JP[i].add(label[i]);
jp.add(JP[i]);
}
textField_1 = new JTextField();
textField_1.setColumns(20);
JP[0].add(textField_1);
textField_2 = new JTextField();
textField_2.setColumns(20);
JP[1].add(textField_2);
textField_3 = new JTextField();
textField_3.setColumns(20);
JP[2].add(textField_3);
textField_4 = new JTextField();
textField_4.setColumns(20);
JP[3].add(textField_4);
textField_5 = new JTextField();
textField_5.setColumns(20);
JP[4].add(textField_5);
//面板
Jpanel = new JPanel();
Jpanel.setBorder(new LineBorder(Color.LIGHT_GRAY));
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon("images/picture.png"));
Jpanel.add(lblNewLabel);
Jpanel1 = new JPanelclass1();
Jpanel2 = new JPanelclass2();
Jpanel3 = new JPanelclass3();
Jpanel4 = new JPanelclass4();
Jpanel5 = new JPanelclass5();
con.add(panel,"North");
con.add(jpanel,"West");
con.add(Jpanel,"Center");
//注册事件侦听器
Jbutton[0].addActionListener(new ButtonEvent(this,Jpanel));
Jbutton[1].addActionListener(new ButtonEvent(this,Jpanel1));
Jbutton[2].addActionListener(new ButtonEvent(this,Jpanel2));
Jbutton[3].addActionListener(new ButtonEvent(this,Jpanel3));
Jbutton[4].addActionListener(new ButtonEvent(this,Jpanel4));
Jbutton[5].addActionListener(new ButtonEvent(this,Jpanel5));
//确认退出系统
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE) ;
this.addWindowListener(new WindowAdapter() {
publicvoid windowClosing(WindowEvent e) {
int confirm=JOptionPane.showConfirmDialog(null,"是否要退出图书馆管理系统?","确认框",JOptionPane.YES_NO_OPTION);
if (confirm==JOptionPane.YES_OPTION)
System.exit(0);
}
});
}
}
//当点击功能板块的图标时,图标会发生变化
class ButtonEvent implements ActionListener {
private KCSJMain frame;
private JPanel jpanel;
public ButtonEvent(KCSJMain frame,JPanel jpanel){
this.frame = frame;
this.jpanel = jpanel;
}
publicvoid actionPerformed(ActionEvent e){
String btnLabel = e.getActionCommand();
if(btnLabel.equals("教师信息管理")){
frame.Jbutton[0].setIcon(new ImageIcon("images/p6.png"));
frame.Jbutton[1].setIcon(new ImageIcon("images/c1.png"));
frame.Jbutton[2].setIcon(new ImageIcon("images/p2.png"));
frame.Jbutton[3].setIcon(new ImageIcon("images/p3.png"));
frame.Jbutton[4].setIcon(new ImageIcon("images/p4.png"));
frame.Jbutton[5].setIcon(new ImageIcon("images/p5.png"));
}
elseif(btnLabel.equals("图书信息管理")){
frame.Jbutton[0].setIcon(new ImageIcon("images/p6.png"));
frame.Jbutton[1].setIcon(new ImageIcon("images/p1.png"));
frame.Jbutton[2].setIcon(new ImageIcon("images/c2.png"));
frame.Jbutton[3].setIcon(new ImageIcon("images/p3.png"));
frame.Jbutton[4].setIcon(new ImageIcon("images/p4.png"));
frame.Jbutton[5].setIcon(new ImageIcon("images/p5.png"));
}
elseif(btnLabel.equals(" 借书登记 ")){
frame.Jbutton[0].setIcon(new ImageIcon("images/p6.png"));
frame.Jbutton[1].setIcon(new ImageIcon("images/p1.png"));
frame.Jbutton[2].setIcon(new ImageIcon("images/p2.png"));
frame.Jbutton[3].setIcon(new ImageIcon("images/c3.png"));
frame.Jbutton[4].setIcon(new ImageIcon("images/p4.png"));
frame.Jbutton[5].setIcon(new ImageIcon("images/p5.png"));
}
elseif(btnLabel.equals(" 还书登记 ")){
frame.Jbutton[0].setIcon(new ImageIcon("images/p6.png"));
frame.Jbutton[1].setIcon(new ImageIcon("images/p1.png"));
frame.Jbutton[2].setIcon(new ImageIcon("images/p2.png"));
frame.Jbutton[3].setIcon(new ImageIcon("images/p3.png"));
frame.Jbutton[4].setIcon(new ImageIcon("images/c4.png"));
frame.Jbutton[5].setIcon(new ImageIcon("images/p5.png"));
}
elseif(btnLabel.equals(" 催还 ")){
frame.Jbutton[0].setIcon(new ImageIcon("images/p6.png"));
frame.Jbutton[1].setIcon(new ImageIcon("images/p1.png"));
frame.Jbutton[2].setIcon(new ImageIcon("images/p2.png"));
frame.Jbutton[3].setIcon(new ImageIcon("images/p3.png"));
frame.Jbutton[4].setIcon(new ImageIcon("images/p4.png"));
frame.Jbutton[5].setIcon(new ImageIcon("images/c5.png"));
}
else{
frame.Jbutton[0].setIcon(new ImageIcon("images/c6.png"));
frame.Jbutton[1].setIcon(new ImageIcon("images/p1.png"));
frame.Jbutton[2].setIcon(new ImageIcon("images/p2.png"));
frame.Jbutton[3].setIcon(new ImageIcon("images/p3.png"));
frame.Jbutton[4].setIcon(new ImageIcon("images/p4.png"));
frame.Jbutton[5].setIcon(new ImageIcon("images/p5.png"));
}
frame.Jpanel.setVisible(false);
frame.Jpanel1.setVisible(false);
frame.Jpanel2.setVisible(false);
frame.Jpanel3.setVisible(false);
frame.Jpanel4.setVisible(false);
frame.Jpanel5.setVisible(false);
frame.add(jpanel,"Center");
jpanel.setVisible(true);
}
}
教师信息管理的实现(面板中还有四个功能):
代码为:
class JPanelclass1 extends JPanel {
//选项卡1
private ButtonGroup buttonGroup1 = new ButtonGroup();
JTextField ZJtextField11;
JTextField ZJtextField12;
JRadioButton radioButton11;
JRadioButton radioButton12;
JTextField ZJtextField22;
JTextField ZJtextField31;
JTextField ZJtextField32;
//选项卡2
JTextField SCtextField2_11;
JPanel SCJp2_2;
//选项卡3
private ButtonGroup buttonGroup2 = new ButtonGroup();
JTextField XGtextField3_11;
JTextField XGtextField3_21;
JRadioButton radioButton21;
JRadioButton radioButton22;
JTextField XGtextField3_221;
JTextField XGtextField3_222;
JTextField XGtextField3_231;
//选项卡4
JTextField CXtextField4_1;
JPanel CXJp4_2;
public JPanelclass1(){
setLayout(new BorderLayout(0, 0));
setBorder(new LineBorder(Color.LIGHT_GRAY));
//选择面板
JTabbedPane JT1 = new JTabbedPane(JTabbedPane.TOP);
add(JT1);
//选项卡1
JPanel panel_1 = new JPanel();
panel_1.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("增加教师信息", null, panel_1, null);
JPanel J1 = new JPanel();
J1.setBorder(new TitledBorder(null, "增加教师信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J1.setLayout(new GridLayout(4, 1, 0, 0));
panel_1.add(J1);
JPanel Jp_1 = new JPanel();
Jp_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
J1.add(Jp_1);
JLabel Jl11 = new JLabel("读者号 :");
ZJtextField11 = new JTextField();
ZJtextField11.setColumns(20);
JLabel Jl12 = new JLabel("*必填");
JLabel Jl13 = new JLabel(" 姓 名:");
ZJtextField12 = new JTextField();
ZJtextField12.setColumns(20);
JLabel Jl14 = new JLabel("*必填");
Jp_1.add(Jl11);
Jp_1.add(ZJtextField11);
Jp_1.add(Jl12);
Jp_1.add(Jl13);
Jp_1.add(ZJtextField12);
Jp_1.add(Jl14);
JPanel Jp_2 = new JPanel();
J1.add(Jp_2);
JLabel Jl21 = new JLabel("性 别: ");
radioButton11 = new JRadioButton(" 男");//" "
buttonGroup1.add(radioButton11);
JLabel Jl23 = new JLabel(" ");
radioButton12 = new JRadioButton(" 女");
buttonGroup1.add(radioButton12);
JLabel Jl22 = new JLabel(" 年 龄:");
ZJtextField22 = new JTextField();
ZJtextField22.setColumns(20);
JLabel Jl24 = new JLabel(" ");
Jp_2.add(Jl21);
Jp_2.add(radioButton11);
Jp_2.add(radioButton12);
Jp_2.add(Jl23);
Jp_2.add(Jl22);
Jp_2.add(ZJtextField22);
Jp_2.add(Jl24);
JPanel Jp_3 = new JPanel();
J1.add(Jp_3);
JLabel Jl31 = new JLabel("部 门:");
ZJtextField31 = new JTextField();
ZJtextField31.setColumns(20);
JLabel Jl32 = new JLabel(" 联系方式:");
ZJtextField32 = new JTextField();
ZJtextField32.setColumns(20);
JLabel Jl33 = new JLabel("*必填");
Jp_3.add(Jl31);
Jp_3.add(ZJtextField31);
Jp_3.add(Jl32);
Jp_3.add(ZJtextField32);
Jp_3.add(Jl33);
JPanel Jp_4 = new JPanel();
J1.add(Jp_4);
JButton Jb1 = new JButton(" 增加 ");
Jb1.setIcon(new ImageIcon("images/ZJ.png"));
Jp_4.add(Jb1);
//注册侦听器
Jb1.addActionListener(new JPanelclass1_1Event(this));
//选项卡2
JPanel panel_2 = new JPanel();
panel_2.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("删除教师信息", null, panel_2, null);
JPanel J2 = new JPanel();
J2.setBorder(new TitledBorder(null, "删除教师信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J2.setLayout(new GridLayout(3, 1, 0, 0));
panel_2.add(J2);
JPanel Jp2_1 = new JPanel();
Jp2_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 25));
J2.add(Jp2_1);
JLabel Jl2_11 = new JLabel("请输入读者号:");
SCtextField2_11 = new JTextField();
SCtextField2_11.setColumns(20);
JButton Jb2_1 = new JButton(" 查询 ");
Jb2_1.setIcon(new ImageIcon("images/b.png"));
Jp2_1.add(Jl2_11);
Jp2_1.add(SCtextField2_11);
Jp2_1.add(Jb2_1);
SCJp2_2 = new JPanel();
SCJp2_2.setLayout(new BorderLayout());
SCJp2_2.setBorder(new TitledBorder(null, "该教师的信息", TitledBorder.LEADING, TitledBorder.TOP, null, null));
J2.add(SCJp2_2);
JPanel Jp2_3 = new JPanel();
Jp2_3.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 25));
J2.add(Jp2_3);
JButton Jb2_2 = new JButton(" 删除 ");
Jb2_2.setIcon(new ImageIcon("images/SC.png"));
Jp2_3.add(Jb2_2);
//注册侦听器
Jb2_1.addActionListener(new JPanelclass1_2Event(this));
Jb2_2.addActionListener(new JPanelclass1_2Event(this));
//选项卡3
JPanel panel_3 = new JPanel();
panel_3.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("修改教师信息", null, panel_3, null);
JPanel J3 = new JPanel();
J3.setBorder(new TitledBorder(null, "修改教师信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J3.setLayout(new GridLayout(2, 1, 0, 0));
panel_3.add(J3);
JPanel Jp3_1 = new JPanel();
Jp3_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
J3.add(Jp3_1);
JLabel Jl3_11 = new JLabel("请输入读者号:");
XGtextField3_11 = new JTextField();
XGtextField3_11.setColumns(20);
JButton Jb3_1 = new JButton(" 查询该教师 ");
Jb3_1.setIcon(new ImageIcon("images/b.png"));
Jp3_1.add(Jl3_11);
Jp3_1.add(XGtextField3_11);
Jp3_1.add(Jb3_1);
JPanel Jp3_2 = new JPanel();
Jp3_2.setBorder(new TitledBorder(null, "修改教师信息", TitledBorder.LEADING, TitledBorder.TOP, null, null));
Jp3_2.setLayout(new GridLayout(4, 1, 0, 0));
J3.add(Jp3_2);
JPanel Jp3_21 = new JPanel();
Jp3_2.add(Jp3_21);
JLabel Jl3_21 = new JLabel("教师姓名:");
XGtextField3_21 = new JTextField();
XGtextField3_21.setColumns(20);
JLabel Jl3_22 = new JLabel(" 教师性别:");
radioButton21 = new JRadioButton("男");//" "
buttonGroup2.add(radioButton21);
JLabel Jl3_23 = new JLabel(" ");
radioButton22 = new JRadioButton("女");
buttonGroup2.add(radioButton22);
JLabel Jl3_24 = new JLabel(" ");
Jp3_21.add(Jl3_21 );
Jp3_21.add(XGtextField3_21);
Jp3_21.add(Jl3_22);
Jp3_21.add(radioButton21);
Jp3_21.add(radioButton22);
Jp3_21.add(Jl3_23);
Jp3_21.add(Jl3_24);
JPanel Jp3_22 = new JPanel();
Jp3_2.add(Jp3_22);
JLabel Jl3_221 = new JLabel("年 龄:");
XGtextField3_221 = new JTextField();
XGtextField3_221.setColumns(20);
JLabel Jl3_222 = new JLabel(" 部 门:");
XGtextField3_222 = new JTextField();
XGtextField3_222.setColumns(20);
Jp3_22.add(Jl3_221);
Jp3_22.add(XGtextField3_221);
Jp3_22.add(Jl3_222);
Jp3_22.add(XGtextField3_222);
JPanel Jp3_23 = new JPanel();
Jp3_2.add(Jp3_23);
JLabel Jl3_231 = new JLabel("联系方式:");
XGtextField3_231 = new JTextField();
XGtextField3_231.setColumns(20);
JLabel Jl3_232 = new JLabel(" ");
Jp3_23.add(Jl3_231);
Jp3_23.add(XGtextField3_231);
Jp3_23.add(Jl3_232);
JPanel Jp3_24 = new JPanel();
Jp3_2.add(Jp3_24);
JButton Jb3_24 = new JButton(" 修改 ");
Jb3_24.setIcon(new ImageIcon("images/XG.png"));
Jp3_24.add(Jb3_24);
//注册侦听器
Jb3_1.addActionListener(new JPanelclass1_3Event(this));
Jb3_24.addActionListener(new JPanelclass1_3Event(this));
//选项卡4
JPanel panel_4 = new JPanel();
panel_4.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("查询教师信息", null, panel_4, null);
JPanel J4 = new JPanel();
J4.setBorder(new TitledBorder(null, "查询教师信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J4.setLayout(new GridLayout(2, 1, 0, 0));
panel_4.add(J4);
JPanel Jp4_1 = new JPanel();
Jp4_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
J4.add(Jp4_1);
JLabel Jl4_1 = new JLabel("请输入读者号:");
CXtextField4_1 = new JTextField();
CXtextField4_1.setColumns(20);
JButton Jb4_1 = new JButton(" 查询该教师 ");
Jb4_1.setIcon(new ImageIcon("images/b.png"));
Jp4_1.add(Jl4_1);
Jp4_1.add(CXtextField4_1);
Jp4_1.add(Jb4_1);
CXJp4_2 = new JPanel();
CXJp4_2.setLayout(new BorderLayout());
CXJp4_2.setBorder(new TitledBorder(null, "查询结果", TitledBorder.LEADING, TitledBorder.TOP, null, null));
J4.add(CXJp4_2);
//注册侦听器
Jb4_1.addActionListener(new JPanelclass1_4Event(this));
}
}
图书信息管理的实现:
class JPanelclass2 extends JPanel{
//选项卡1
JTextField ZJtextField1_1;
JTextField ZJtextField1_12;
JTextField ZJtextField1_2;
JTextField ZJtextField1_22;
JTextField ZJtextField1_3;
JTextField ZJtextField1_32;
//选项卡2
JTextField SCtextField2_1;
JPanel SCJp2_2;
//选项卡3
JTextField XGtextField3_1;
JTextField XGtextField3_21;
JTextField XGtextField3_22;
JTextField XGtextField3_221;
JTextField XGtextField3_222;
JTextField XGtextField3_23;
//选项卡4
JTextField CXtextField14;
JPanel CXJp4_2;
public JPanelclass2(){
setLayout(new BorderLayout(0, 0));
setBorder(new LineBorder(Color.LIGHT_GRAY));
//选择面板
JTabbedPane JT1 = new JTabbedPane(JTabbedPane.TOP);
add(JT1);
//选项卡1
JPanel panel_1 = new JPanel();
panel_1.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("增加图书信息", null, panel_1, null);
JPanel J1 = new JPanel();
J1.setBorder(new TitledBorder(null, "增加图书信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J1.setLayout(new GridLayout(4, 1, 0, 0));
panel_1.add(J1);
JPanel Jp1_1 = new JPanel();
Jp1_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
J1.add(Jp1_1);
JLabel Jl1_1 = new JLabel(" ISBN:");
ZJtextField1_1 = new JTextField();
ZJtextField1_1.setColumns(20);
JLabel Jl1_12 = new JLabel("*必填 书名:");
ZJtextField1_12 = new JTextField();
ZJtextField1_12.setColumns(20);
JLabel Jl1_13 = new JLabel("*必填");
Jp1_1.add(Jl1_1);
Jp1_1.add(ZJtextField1_1);
Jp1_1.add(Jl1_12);
Jp1_1.add(ZJtextField1_12);
Jp1_1.add(Jl1_13);
JPanel Jp1_2 = new JPanel();
J1.add(Jp1_2);
JLabel Jl1_2 = new JLabel("作 者:");
ZJtextField1_2 = new JTextField();
ZJtextField1_2.setColumns(20);
JLabel Jl1_22 = new JLabel("*必填 价格:");
ZJtextField1_22 = new JTextField();
ZJtextField1_22.setColumns(20);
JLabel Jl1_23 = new JLabel("*必填");
Jp1_2.add(Jl1_2);
Jp1_2.add(ZJtextField1_2);
Jp1_2.add(Jl1_22);
Jp1_2.add(ZJtextField1_22);
Jp1_2.add(Jl1_23);
JPanel Jp1_3 = new JPanel();
J1.add(Jp1_3);
JLabel Jl1_3 = new JLabel("出版社:");
ZJtextField1_3 = new JTextField();
ZJtextField1_3.setColumns(20);
JLabel Jl1_32 = new JLabel("*必填 类型:");
ZJtextField1_32 = new JTextField();
ZJtextField1_32.setColumns(20);
JLabel Jl1_33 = new JLabel(" ");
Jp1_3.add(Jl1_3);
Jp1_3.add(ZJtextField1_3);
Jp1_3.add(Jl1_32);
Jp1_3.add(ZJtextField1_32);
Jp1_3.add(Jl1_33);
JPanel Jp1_4 = new JPanel();
J1.add(Jp1_4);
JButton Jb1_4 = new JButton(" 增加 ");
Jb1_4.setIcon(new ImageIcon("images/ZJ.png"));
Jp1_4.add(Jb1_4);
//注册侦听器
Jb1_4.addActionListener(new JPanelclass2_1Event(this));
//选项卡2
JPanel panel_2 = new JPanel();
panel_2.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("删除图书信息", null, panel_2, null);
JPanel J2 = new JPanel();
J2.setBorder(new TitledBorder(null, "删除图书信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J2.setLayout(new GridLayout(3, 1, 0, 0));
panel_2.add(J2);
JPanel Jp2_1 = new JPanel();
Jp2_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 25));
J2.add(Jp2_1);
JLabel Jl2_1 = new JLabel("请输入ISBN:");
SCtextField2_1 = new JTextField();
SCtextField2_1.setColumns(20);
JButton Jb2_1 = new JButton("查询");
Jb2_1.setIcon(new ImageIcon("images/b.png"));
Jp2_1.add(Jl2_1);
Jp2_1.add(SCtextField2_1);
Jp2_1.add(Jb2_1);
SCJp2_2 = new JPanel();
SCJp2_2.setLayout(new BorderLayout());
SCJp2_2.setBorder(new TitledBorder(null, "查询结果", TitledBorder.LEADING, TitledBorder.TOP, null, null));
J2.add(SCJp2_2);
JPanel Jp2_3 = new JPanel();
Jp2_3.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 25));
J2.add(Jp2_3);
JButton Jb2_2 = new JButton(" 删除 ");
Jb2_2.setIcon(new ImageIcon("images/SC.png"));
Jp2_3.add(Jb2_2);
//注册侦听器
Jb2_1.addActionListener(new JPanelclass2_2Event(this));
Jb2_2.addActionListener(new JPanelclass2_2Event(this));
//选项卡3
JPanel panel_3 = new JPanel();
panel_3.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("修改图书信息", null, panel_3, null);
JPanel J3 = new JPanel();
J3.setBorder(new TitledBorder(null, "修改图书信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J3.setLayout(new GridLayout(2, 1, 0, 0));
panel_3.add(J3);
JPanel Jp3_1 = new JPanel();
Jp3_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
J3.add(Jp3_1);
JLabel J3_1 = new JLabel("请输入ISBN:");
XGtextField3_1 = new JTextField();
XGtextField3_1.setColumns(20);
JButton Jb3 = new JButton("查询");
Jb3.setIcon(new ImageIcon("images/b.png"));
Jp3_1.add(J3_1);
Jp3_1.add(XGtextField3_1);
Jp3_1.add(Jb3);
JPanel Jp3_2 = new JPanel();
Jp3_2.setBorder(new TitledBorder(null, "修改信息", TitledBorder.LEADING, TitledBorder.TOP, null, null));
Jp3_2.setLayout(new GridLayout(4, 1, 0, 0));
J3.add(Jp3_2);
JPanel Jp3_21 = new JPanel();
Jp3_2.add(Jp3_21);
JLabel J3_21 = new JLabel("书 名:");
XGtextField3_21 = new JTextField();
XGtextField3_21.setColumns(20);
JLabel J3_22 = new JLabel(" 作 者:");
XGtextField3_22 = new JTextField();
XGtextField3_22.setColumns(20);
Jp3_21.add(J3_21);
Jp3_21.add(XGtextField3_21);
Jp3_21.add(J3_22);
Jp3_21.add(XGtextField3_22);
JPanel Jp3_22 = new JPanel();
Jp3_2.add(Jp3_22);
JLabel J3_221 = new JLabel("价 格:");
XGtextField3_221 = new JTextField();
XGtextField3_221.setColumns(20);
JLabel J3_222 = new JLabel(" 出版社:");
XGtextField3_222 = new JTextField();
XGtextField3_222.setColumns(20);
Jp3_22.add(J3_221);
Jp3_22.add(XGtextField3_221);
Jp3_22.add(J3_222);
Jp3_22.add(XGtextField3_222);
JPanel Jp3_23 = new JPanel();
Jp3_2.add(Jp3_23);
JLabel J3_23 = new JLabel(" 类 型:");
XGtextField3_23 = new JTextField();
XGtextField3_23.setColumns(20);
JLabel J3_232 = new JLabel(" ");
Jp3_23.add(J3_23);
Jp3_23.add(XGtextField3_23);
Jp3_23.add(J3_232);
JPanel Jp3_24 = new JPanel();
Jp3_2.add(Jp3_24);
JButton Jb3_23 = new JButton(" 修改 ");
Jb3_23.setIcon(new ImageIcon("images/XG.png"));
Jp3_24.add(Jb3_23);
//注册侦听器
Jb3.addActionListener(new JPanelclass2_3Event(this));
Jb3_23.addActionListener(new JPanelclass2_3Event(this));
//选项卡4
JPanel panel_4 = new JPanel();
panel_4.setLayout(new GridLayout(0, 1, 0, 0));
JT1.addTab("查询图书信息", null, panel_4, null);
JPanel J4 = new JPanel();
J4.setBorder(new TitledBorder(null, "查询图书信息", TitledBorder.CENTER, TitledBorder.TOP, null, null));
J4.setLayout(new GridLayout(2, 1, 0, 0));
panel_4.add(J4);
JPanel Jp4_1 = new JPanel();
Jp4_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
J4.add(Jp4_1);
JLabel Jl4 = new JLabel("请输入ISBN:");
CXtextField14 = new JTextField();
CXtextField14.setColumns(20);
JButton Jb4 = new JButton("查询");
Jb4.setIcon(new ImageIcon("images/b.png"));
Jp4_1.add(Jl4);
Jp4_1.add(CXtextField14);
Jp4_1.add(Jb4);
CXJp4_2 = new JPanel();
CXJp4_2.setLayout(new BorderLayout());
CXJp4_2.setBorder(new TitledBorder(null, "查询结果", TitledBorder.LEADING, TitledBorder.TOP, null, null));
J4.add(CXJp4_2);
//注册侦听器
Jb4.addActionListener(new JPanelclass2_4Event(this));
}
}
借书登记板块的实现:
代码为:
class JPanelclass3 extends JPanel{
JTextField textField11;
JTextField textField12;
JPanel Jp2;
publicstatic JTextField textField21;
publicstatic JTextField textField22;
public JPanelclass3(){
setBorder(new TitledBorder(null, "图书借阅登记", TitledBorder.CENTER, TitledBorder.TOP, null, null));
setLayout(new GridLayout(3, 1, 0, 0));
JPanel Jp1 = new JPanel();
Jp1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 25));
add(Jp1);
JLabel Jl11 = new JLabel("读者号 :");
textField11 = new JTextField();
textField11.setColumns(20);
JLabel Jl12 = new JLabel(" ISBN:");
textField12 = new JTextField();
textField12.setColumns(20);
Jp1.add(Jl11);
Jp1.add(textField11);
Jp1.add(Jl12);
Jp1.add(textField12);
Jp2 = new JPanel();
Jp2.setBorder(new TitledBorder(null, "借阅信息", TitledBorder.LEADING, TitledBorder.TOP, null, null));
Jp2.setLayout(new BorderLayout());
add(Jp2);
JPanel Jp3 = new JPanel();
Jp3.setLayout(new GridLayout(3, 1, 0, 0));
add(Jp3);
JPanel Jp3_1 = new JPanel();
Jp3_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jp3.add(Jp3_1);
JLabel Jl21 = new JLabel("当前时间:");
textField21 = new JTextField();
textField21.setColumns(25);
JLabel Jl22 = new JLabel(" 办理人 :");
textField22 = new JTextField();
textField22.setColumns(20);
Jp3_1.add(Jl21);
Jp3_1.add(textField21);
Jp3_1.add(Jl22);
Jp3_1.add(textField22);
JPanel Jp3_2 = new JPanel();
Jp3_2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jp3.add(Jp3_2);
JButton Jb3_2 = new JButton(" 借阅 ");
Jb3_2.setIcon(new ImageIcon("images/JY.png"));
Jp3_2.add(Jb3_2);
//注册侦听器
Jb3_2.addActionListener(new JPanelclass3Event(this));
}
}
还书登记板块的实现:
代码为:
class JPanelclass4 extends JPanel{
JTextField textField1;
publicstatic JTextField textField1_21;
publicstatic JTextField textField1_22;
JTextField textField2_11;
JTextField textField2_12;
JTextField textField2_21;
JTextField textField2_22;
JTextField textField2_31;
JTextField textField2_32;
public JPanelclass4(){
setBorder(new TitledBorder(null, "图书归还登记", TitledBorder.CENTER, TitledBorder.TOP, null, null));
setLayout(new GridLayout(2, 1, 0, 0));
JPanel Jp1 = new JPanel();
Jp1.setLayout(new GridLayout(2, 1, 0, 0));
add(Jp1);
JPanel Jp1_1 = new JPanel();
Jp1_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jp1.add(Jp1_1);
JLabel Jl1 = new JLabel("ISBN:");
textField1 = new JTextField();
textField1.setColumns(20);
JButton Jb1 = new JButton(" 归还 ");
Jb1.setIcon(new ImageIcon("images/GH.png"));
Jp1_1.add(Jl1);
Jp1_1.add(textField1);
Jp1_1.add(Jb1);
JPanel Jp1_2 = new JPanel();
Jp1_2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 20));
Jp1_2.setBorder(new TitledBorder(null, "系统信息", TitledBorder.LEADING, TitledBorder.TOP, null, null));
Jp1.add(Jp1_2);
JLabel Jl1_21 = new JLabel("当前系统时间:");
textField1_21 = new JTextField();
textField1_21.setColumns(25);
JLabel Jl1_22 = new JLabel(" 归还办理人:");
textField1_22 = new JTextField();
textField1_22.setColumns(20);
Jp1_2.add(Jl1_21);
Jp1_2.add(textField1_21);
Jp1_2.add(Jl1_22);
Jp1_2.add(textField1_22);
//
JPanel Jp2 = new JPanel();
Jp2.setBorder(new TitledBorder(null, "归还提示", TitledBorder.LEADING, TitledBorder.TOP, null, null));
Jp2.setLayout(new GridLayout(3, 1, 0, 0));
add(Jp2);
JPanel Jp2_1 = new JPanel();
Jp2.add(Jp2_1);
JLabel Jl2_11 = new JLabel("教师姓名:");
textField2_11 = new JTextField();
textField2_11.setColumns(30);
JLabel Jl2_12 = new JLabel(" 书 名:");
textField2_12 = new JTextField();
textField2_12.setColumns(30);
Jp2_1.add(Jl2_11);
Jp2_1.add(textField2_11);
Jp2_1.add(Jl2_12);
Jp2_1.add(textField2_12);
JPanel Jp2_2 = new JPanel();
Jp2.add(Jp2_2);
JLabel Jl2_21 = new JLabel("借书日期:");
textField2_21 = new JTextField();
textField2_21.setColumns(30);
JLabel Jl2_22 = new JLabel(" 归还日期:");
textField2_22 = new JTextField();
textField2_22.setColumns(30);
Jp2_2.add(Jl2_21);
Jp2_2.add(textField2_21);
Jp2_2.add(Jl2_22);
Jp2_2.add(textField2_22);
JPanel Jp2_3 = new JPanel();
Jp2.add(Jp2_3);
JLabel Jl2_31 = new JLabel("期限天数:");
textField2_31 = new JTextField();
textField2_31.setColumns(30);
JLabel Jl2_32 = new JLabel(" 违期天数:");
textField2_32 = new JTextField();
textField2_32.setColumns(30);
Jp2_3.add(Jl2_31);
Jp2_3.add(textField2_31);
Jp2_3.add(Jl2_32);
Jp2_3.add(textField2_32);
//注册侦听器
Jb1.addActionListener(new JPanelclass4Event(this));
}
}
催还板块功能的实现:
代码为:
class JPanelclass5 extends JPanel{
JPanel Jp1;
public JPanelclass5(){
setBorder(new TitledBorder(null, "违期催还", TitledBorder.CENTER, TitledBorder.TOP, null, null));
setLayout(new GridLayout(2, 1, 0, 0));
Jp1 = new JPanel();
Jp1.setBorder(new TitledBorder(null, "违期信息", TitledBorder.LEADING, TitledBorder.TOP, null, null));
Jp1.setLayout(new BorderLayout());
add(Jp1);
JPanel Jp2 = new JPanel();
Jp2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 30));
add(Jp2);
JButton Jb2 = new JButton(" 查询 ");
Jb2.setIcon(new ImageIcon("images/b.png"));
Jp2.add(Jb2);
//注册侦听器
Jb2.addActionListener(new JPanelclass5Event(this));
}
}
工作体会:
这是第一次与别人(其他班的学生许子轩)合作做程序,他负责做界面,我则负责做事件处理以及数据库的连接。但由于是第一次,因此两个人之间的意见偶尔会冲突。比如,他做界面的时候,是按照他的想法做的,而我在做事件处理的时候,是按照我的想法做的,当然,我们两个人之间之前已经有过沟通,所以我们是经过了很多次的沟通交流,才最终磨合修改,完成了程序。
在做事件处理的时候,因为事件很多,处理起来很乱很乱,甚至有些时候会搞乱哪个动作会发生什么样的事件,我想这是我缺少实践的关系。而且事件的名字经常会弄错,变量名也经常弄错,这里让我花费了很多的时间去分析,不过还好,因为我起类名和变量名的时候,有一定的规律,这点帮助了我不少,因此以后起类名和变量名的时候,必须要遵守一定的规律,而不是随便起a,b,c之类的名字。
在数据库连接方面,个人感觉数据库连接比较麻烦,需要设置很多的东西,比如登录名,相关服务的启动等等,而且由于自己还没尝试过sql2005的数据库连接,所以我失败了很多很多次,终于在尝试了N遍后,可以成功连接数据库了,失败的主要原因在于登录名方面出了错误。
总而言之,在与别人合作做项目的时候,事前一定要先沟通好,这样才能避免途中起意见的冲突,而且这时候项目已经做到一半,再修改的话事很花费时间的。做事件处理要逐步就班,哪些按钮,哪些动作会产生什么样的事件,要添加什么样的侦听器,这些都要经过深思熟虑之后才能开展的。否则到时候只会越做越乱。一个好的程序,一定要有序。数据库方面,因为不同的数据库有不同的设置方法,这点应该多实践几次,才能“以不变应万变”。