Java課程設(shè)計-教職工檔案管理系統(tǒng).doc
職工檔案管理系統(tǒng)一引言 1.1項目背景和目標(biāo) 職工檔案管理系統(tǒng)主要是對在校教師的個人基本信息以及教學(xué)信息進(jìn)行管理,對教職工提供查詢簡介信息、教學(xué)信息功能;對管理員用戶提供查詢教師簡介信息、查詢教學(xué)信息、添加教師信息、修改教師信息、刪除教師信息等功能。我們的目標(biāo)就是為該系統(tǒng)提供后臺連接MYSQL數(shù)據(jù)庫程序設(shè)計以及前臺用戶界面設(shè)計。 1.2項目的可行性研究 設(shè)計此系統(tǒng)需要java面向?qū)ο缶幊袒A(chǔ),數(shù)據(jù)庫應(yīng)用知識以及功能分析。根據(jù)目前所開設(shè)的課程,學(xué)生已經(jīng)具備這樣的知識,有能力綜合java編程知識和數(shù)據(jù)庫應(yīng)用知識做出一個這樣的學(xué)生信息管理系統(tǒng)二. 需求分析 21系統(tǒng)概述 此系統(tǒng)提供給教職工用戶和學(xué)校管理者,教職工登陸后可以對能自己基本信息進(jìn)行查看,管理員登陸后能對教師的基本信息進(jìn)行增刪改操作。 22系統(tǒng)運(yùn)行環(huán)境 Java程序運(yùn)行在eclipse軟件上編譯并且運(yùn)行,數(shù)據(jù)庫用MYSQL數(shù)據(jù)庫三系統(tǒng)設(shè)計 31開發(fā)與設(shè)計的總體思想 教職工方面:教師通過自己的用戶名和密碼登錄后,進(jìn)入教師主界面,在這個主界面里,可以進(jìn)行查詢信息操作。 學(xué)校管理員方面:管理員通過自己的密碼登入后可以選擇:查詢功能、文件功能、修改功能。在查詢功能里面,可以選擇是查詢教職工簡介基本信息,還是查詢教學(xué)信息。在查詢教職工簡介信息時,可以從依據(jù)不同字段,即簡介表中的不同屬性進(jìn)行查找。在查找教學(xué)信息時,只能依據(jù)教師姓名進(jìn)行查找。在修改功能里面,包括對教師簡介信息表和教學(xué)表進(jìn)行增加和刪除記錄 職工檔案管理系統(tǒng) 32系統(tǒng)模塊結(jié)構(gòu)圖 教職工登錄 管理員登錄教職工信息管理教職工教學(xué)信息 幫助 教職工信息查詢教職工信息修改 退出系統(tǒng) 教職工簡介信息教職工教學(xué)信息 刪除簡介信息 添加簡介信息 添加教學(xué)信息 刪除教學(xué)信息 33數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 為了支持此職工檔案管理系統(tǒng),創(chuàng)建數(shù)據(jù)庫employeemanage,在這個數(shù)據(jù)庫里包含四個表:worker表,manager表,employee表和teaching表,它們的截圖如下: 在worker表中,有八個屬性列,分別為:id(職工號),wname(姓名),sex(性別),age(年齡),degree(學(xué)歷),worktime(參加工作時間),salary(工資),dept(院別)。其基本數(shù)據(jù)類型分別為:char,char,char,int,char,char,int,char. 表1 worker 在manager表中,有兩個屬性列,分別為:mname(管理員姓名),password(密碼)其基本數(shù)據(jù)類型分別為:char,char。當(dāng)管理員登錄系統(tǒng)時從此表獲取數(shù)據(jù),其截圖如下: 表2 manager 在employee表中,有兩個屬性列,分別為:wname(職工姓名),password(密碼)其基本數(shù)據(jù)類型分別為:char,char。當(dāng)教職工登錄系統(tǒng)時從此表獲取數(shù)據(jù),其截圖如下: 表3 employee 在teaching表中,有七個屬性列,分別為:id(職工號),wname(姓名),grade(年級),tmajor(教授專業(yè)),snum(學(xué)生人數(shù)),passrate(及格率),comment(教學(xué)總評)。其基本數(shù)據(jù)類型分別為:char,char,char,int,char,char,char。其截圖如下: 表4 teaching 34模塊設(shè)計 在整個系統(tǒng)主界面,可以選擇登錄方式,是教職工登錄還是管理員登錄。如果選擇教職工,則進(jìn)入教職工登錄界面,在這個界面上要求輸入教職工姓名和密碼。輸入后單擊“確認(rèn)登錄”按鈕,若密碼正確,則轉(zhuǎn)換到教職工教學(xué)信息查詢頁面,當(dāng)輸入教職工姓名后即可顯示該名教職工的教學(xué)信息,若密碼不正確,這提示密碼錯誤。如果選擇是管理員登錄,則進(jìn)入管理員登陸界面,在這個界面上輸入管理員姓名和密碼,輸入后單擊“教職工信息管理”按鈕,則進(jìn)入管理員主界面。在管理員主界面可以選擇進(jìn)行文件操作,查詢操作還是修改操作。若要查詢教職工簡介信息,點(diǎn)擊查詢菜單項則進(jìn)入教職工簡介信息檢索界面,在此界面的檢索方式中選擇要檢索的數(shù)據(jù)屬性,在檢索內(nèi)容框中輸入檢索的具體信息,例如,檢索“姓名”字段時,要鍵入某個教職工的姓名。輸入后,單擊“檢索”按鈕,則開始對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢。如果數(shù)據(jù)庫檢索到所需信息,則生成列表顯示檢索結(jié)構(gòu),如果沒有所需信息,則頁面列表中顯示為空。若要查詢教職工教學(xué)信息,則點(diǎn)擊教職工教學(xué)信息查詢菜單項,進(jìn)入教學(xué)查詢界面。在此界面的文本框中輸入要查詢教學(xué)信息的教職工姓名,然后單擊檢索按鈕。若數(shù)據(jù)庫中有該教職工的教學(xué)信息,則生成列表顯示教學(xué)信息,若沒有此記錄,則列表顯示內(nèi)容為空。如果管理員要對數(shù)據(jù)庫中進(jìn)行修改操作,則在管理員主界面上選擇修改菜單項,在此項中,選擇要修改的具體內(nèi)容,總共有四項修改操作:添加教職工簡介信息,刪除教職工簡介信息(這兩個是對數(shù)據(jù)庫中worker表的操作),添加教職工教學(xué)信息,刪除教職工教學(xué)信息(這兩個是對數(shù)據(jù)庫中teaching表的操作)。在添加信息操作中,按照標(biāo)簽提示一次輸入要添加的記錄值,輸入完畢后,單擊“添加”按鈕,若輸入成功,則提示成功,若輸入失敗,則提示失敗。在刪除信息操作中,輸入要刪除信息的教職工姓名,單擊“刪除”按鈕,若刪除成功,則提示成功,若刪除失敗則提示失敗。以上就是該職工檔案管理系統(tǒng)涉及的操作步驟。 開 始35系統(tǒng)流程描述登錄主界面 幫 助管理員登錄教職工登錄輸入有誤輸入有誤成功成功No 選擇 幫助教學(xué)信息管理界面簡介信息查詢Yes教職工信息修改退出系統(tǒng)教職工信息查詢刪除教職工教學(xué)信息刪除教職工簡介信息添加教職工教學(xué)信息添加教職工簡介信息職工教學(xué)信息職工簡介信息退出輸入教職工 姓名選擇檢索方 式和數(shù)據(jù)錄入添加的簡介信息輸入要刪除的教職工姓名輸入要刪除的教職工姓名錄入添加的教學(xué)信息成功成功成功成功成功成功Yes顯示教職工教學(xué)信息顯示檢索信息輸入有誤輸入有誤輸入有誤輸入有誤 沒有任何的輸出 Insert successinsertsuccessdeletesuccessdeletesuccess四、系統(tǒng)實(shí)現(xiàn)DBconnection類 本系統(tǒng)所編寫的程序保存在以下四個包中:connection包,first包,second包,finally包1. connection包中的類: (1)DBconnection類:此類設(shè)置程序與數(shù)據(jù)庫的連接,通過設(shè)置驅(qū)動類型和數(shù)據(jù)源來確定要連接的數(shù)據(jù)庫。若連接成功,提示:connection success,若連接失敗,提示:connection failure DBconnection類源代碼: package connection;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import finallys.TeachQuery;public class DBconnection public static void main(String args) new DBconnection();public static Connection con=null;public static Connection getConnection()try String dbDriver="com.mysql.jdbc.Driver"Class.forName(dbDriver);System.out.println("Driver Suceess"); catch (ClassNotFoundException e) System.out.println("Driver not found");e.printStackTrace();try con=DriverManager.getConnection("jdbc:mysql:/localhost:3306/employeemanage","root","0703112418");System.out.println("Connection Suceess"); catch (SQLException e) System.out.println("Connetion failure");e.printStackTrace();return con;public static void closeConnection()if(con!=null)try con.close();System.out.println("database close success"); catch (SQLException e) System.out.println("close failure");e.printStackTrace();2. first包中的類:(1)Workerfirst類:此類中有四個方法,managerLogin,addWorker,deleteWorker, queryworker,作用分別是控制管理員登陸系統(tǒng),增加教職工基本信息,刪除學(xué)生基本信息,查詢教職工基本信息。managerLogin()方法中,有兩個參數(shù),分別傳給select語句中的mname(管理員姓名)和password(登錄密碼),利用select語句在employee表中檢索管理員登錄信息。若存在此信息,返回true,否則返回falseaddWorker)方法中,有八個參數(shù),分別傳給insert語句中的id(職工號),wname(教職工姓名),age(年齡),sex(性別),degree(學(xué)歷),worktime(參加工作時間),salary(工資)和dept(院別),利用insert語句向worker教職工信息簡介表中插入記錄。若插入成功,返回true,否則返回falsedeleteWorker()方法中,有一個參數(shù),傳給delete語句中的wname(教職工姓名),利用delete語句,把worker表中相關(guān)教職工信息刪除。若刪除成功,返回true,否則返回falsequeryWorker()方法中,有兩個參數(shù),分別傳給select語句中的field(查找方式)和key(查找內(nèi)容),利用select語句,從worker表中檢索教職工簡介信息。若存在此信息,則返回一個ArrayList類的對象lis(表格),否則,異常處理 Workerfirst類源代碼:package first;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import second.Work;import connection.DBconnection;public class Workerfirst public boolean managerLogin(String mname,String password) DBconnection db=new DBconnection();Connection con=db.getConnection();boolean isfound=false;PreparedStatement pst;try pst = con.prepareStatement("select * from manager where mname=? and password=?");pst.setString(1, mname); pst.setString(2,password);ResultSet rs=pst.executeQuery(); if(rs.next() isfound=true; catch (SQLException e) e.printStackTrace(); System.out.println(isfound); return isfound;public boolean addWorker(String id, String wname, String sex, int age,String degree,String worktime,int salary ,String dept) Connection con = DBconnection.getConnection();PreparedStatement pst;try pst = con.prepareStatement("insert into worker values(?,?,?,?,?,?,?,?)");pst.setString(1, id);pst.setString(2, wname);pst.setString(3, sex);pst.setInt(4, age);pst.setString(5, degree);pst.setString(6, worktime);pst.setInt(7, salary);pst.setString(8, dept);int count = pst.executeUpdate();/ 返回修改的記錄數(shù)if (count = 1)return true;elsereturn false; catch (SQLException e) e.printStackTrace();return false;public ArrayList queryWorker(String field, String key) ArrayList lis = new ArrayList();Connection con = DBconnection.getConnection();Statement stm;try stm = con.createStatement();String sql = "select * from worker where " + field + " like %"+ key + "% "System.out.println(sql);ResultSet rs = stm.executeQuery(sql); while (rs.next() Work work= new Work(rs.getString(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5),rs.getString(6),rs.getInt(7),rs.getString(8);lis.add(work); catch (SQLException e) e.printStackTrace();return lis;public boolean deleteWorker(String key) Connection con = DBconnection.getConnection();Statement stm;try stm = con.createStatement();String sql = "delete from worker where wname like %"+ key + "% "System.out.println(sql);int count = stm.executeUpdate(sql);if (count = 1)return true;elsereturn false; catch (SQLException e) e.printStackTrace();return false; (2)Employeefirst類:此類中有一個方法:queryEmployee(),作用是控制教職工登陸 queryEmployee()方法中,有兩個參數(shù),分別傳給select語句中的wname(教職工姓名)和password(登陸密碼),利用select語句在teacher表中檢索教師登陸信息。若存在此信息,返回true,否則返回false Employeefirst類源代碼:package first;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import connection.DBconnection;public class Employeefirst public boolean queryEmployee(String wname,String password) DBconnection db=new DBconnection();Connection con=db.getConnection();boolean isfound=false;PreparedStatement pst;try pst = con.prepareStatement("select * from employee where wname=? and password=?");pst.setString(1, wname); pst.setString(2,password);ResultSet rs=pst.executeQuery(); if(rs.next() isfound=true; catch (SQLException e) e.printStackTrace(); System.out.println(isfound); return isfound;public static void main(String args) (3)Teaching類:在該類中有四個方法queryTeaching,addTeaching,deleteTeaching作用分別是為教職工用戶提供查詢教學(xué)信息的功能,為管理者用戶提供詢教職工教學(xué)信息,添加教學(xué)信息,刪除教學(xué)信息功能。queryTeaching()方法中,有一個參數(shù),傳給select語句中的wname(學(xué)生姓名),利用select語句,查詢教學(xué)信息表中的內(nèi)容。若查詢成功,則返回一個ArrayList類的對象lis(表格),否則,異常處理addTeaching()方法中,有七個參數(shù),分別傳給insert語句中的id(職工號),wname(教職工姓名),grade(年級),tmajor(教學(xué)專業(yè)),snum(學(xué)生人數(shù)),passrate(及格率),comment(教學(xué)總評)。利用insert語句,將這些記錄寫入teaching表中。若插入成功返回true,否則返 回falsedeleteTeaching()方法中,有一個參數(shù),傳給delete語句中的wname(教職工姓名),利用delete語句,把steaching表中相關(guān)教職工的教學(xué)信息刪除。若刪除成功,返回 true,否則返回false Teaching類源代碼:package first;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import finallys.ManagerDD;import second.Teaching;import second.Work;import connection.DBconnection;public class Teachingfirst public ArrayList queryTeaching(String key) ArrayList lis = new ArrayList();Connection con = DBconnection.getConnection();Statement stm;try stm = con.createStatement();String sql = "select * from teaching where wname like %" + key+ "% "System.out.println(sql);ResultSet rs = stm.executeQuery(sql);while (rs.next() Teaching teach = new Teaching(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5),rs.getString(6),rs.getString(7);lis.add(teach); catch (SQLException e) e.printStackTrace();return lis;public ArrayList queryTeach(String key) ArrayList lis = new ArrayList();Connection con = DBconnection.getConnection();Statement stm;try stm = con.createStatement();String sql = "select * from teaching where wname like %" + ManagerDD.st1+ "% "System.out.println(sql);ResultSet rs = stm.executeQuery(sql);while (rs.next() Teaching teach = new Teaching(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5),rs.getString(6),rs.getString(7);lis.add(teach); catch (SQLException e) e.printStackTrace();return lis;public boolean addTeaching(String id, String wname, String grade, String tmajor,int snum,String passrate,String comment) Connection con = DBconnection.getConnection();PreparedStatement pst;try pst = con.prepareStatement("insert into teaching values(?,?,?,?,?,?,?)");pst.setString(1, id);pst.setString(2, wname);pst.setString(3, grade);pst.setString(4, tmajor);pst.setInt(5, snum);pst.setString(6, passrate);pst.setString(7, comment);int count = pst.executeUpdate();/ 返回修改的記錄數(shù)if (count = 1)return true;elsereturn false; catch (SQLException e) e.printStackTrace();return false;public boolean deleteTeaching(String key) Connection con = DBconnection.getConnection();Statement stm;try stm = con.createStatement();String sql = "delete from teaching where wname like %" + key + "% "System.out.println(sql);int count = stm.executeUpdate(sql);if (count = 1)return true;elsereturn false; catch (SQLException e) e.printStackTrace();return false;3.second包中的類:(1)Work類:此類中有八個成員變量,String id;String wname;String sex;int age;String degree;String worktime;int salary;String dept,和十六個成員方法,類中分別獲取和設(shè)置了這八個變量,即為worker表中八個屬性的屬性名,每個變量都對應(yīng)了getXXX(),setXXX()方法,還有一個構(gòu)造方法,用于在調(diào)用其對象時對成員變量賦值 Work類源代碼:package second;public class Work String id;String wname;String sex;int age;String degree;String worktime;int salary;String dept;public String getID() return id;public void setID(String id) this.id= id;public String getWname() return wname;public void setWname(String wname) this.wname = wname;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public int getAge() return age;public void setAge(int age) this.age = age;public String getDegree() return degree;public void setDegree(String degree) this.degree = degree;public String getWorktime() return worktime;public void setWorktime(String worktime) this.worktime= worktime;public int getSalary() return salary;public void setSalary(int salary) this.salary = salary;public String getDept() return dept;public void setDept(String dept) this.dept = dept;public Work(String id, String wname, String sex, int age,String degree,String worktime,int salary,String dept) super();this.id = id;this.wname = wname;this.sex = sex;this.age = age;this.degree=degree;this.worktime=worktime;this.salary=salary;this.dept = dept;(2)Teaching類:此類中有七個成員變量,String id;String wname;String grade;String tmajor;int snum;String passrate;String comment,和十四個成員方法,類中分別獲取和設(shè)置了這七個變量,即為teaching表中七個屬性的屬性名,每個變量都對應(yīng)了getXXX(),setXXX()方法,還有一個構(gòu)造方法,用于在調(diào)用其對象時對成員變量賦值 Teaching類源代碼:package second;public class Teaching String id;String wname;String grade;int snum;String tmajor;String passrate;String comment;public String getID() return id;public void setID(String id) this.id = id;public String getWname() return wname;public void setWname(String wname) this.wname = wname;public String getGrade() return grade;public void setGrade(String grade) this.grade= grade;public int getSnum() return snum;public void setSnum(int snum) this.snum = snum;public String getTmajor() return tmajor;public void setTmajor(String tmajor) this.tmajor = tmajor;public String getPassRate() return passrate;public void setPassRate(String passrate) this.passrate= passrate;public String getComment() return comment;public void setComment(String comment) this.comment = comment;public Teaching(String id, String wname, String grade, String tmajor,int snum,String passrate,String comment) super();this.id = id;this.wname = wname;this.grade = grade;this.tmajor= tmajor;this.snum=snum;this.passrate=passrate;this.comment=comment;4. finally包中的類: (1)LoginDD類:此類為登陸主界面類,在這個界面上,設(shè)置有兩個按鈕,教職工按鈕和管理員按鈕。給這兩個按鈕注冊事件addActionListener,分別在內(nèi)部類TeacherLoginActionListene和StudentLoginActionListener中的默認(rèn)方法actionPerformed()中創(chuàng)建EmployeeDD類和 ManagerDD類的對象,即打開教職工登陸界面和管理員登錄界面,并將原登陸界面關(guān)閉。 LoginDD類源代碼:package finallys;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class LoginDD extends JFrameJLabel l1;JButton bt1, bt2;Container cp;public LoginDD() l1 = new JLabel("請選擇用戶類型");bt1 = new JButton("教職工");bt2 = new JButton("管理員");JPanel p1 = new JPanel();p1.setLayout(null);l1.setBounds(150, 150, 120, 40);p1.add(l1);bt1.setBounds(120, 230, 80, 30);p1.add(bt1);bt2.setBounds(220, 230, 80, 30);p1.add(bt2);bt1.addActionListener(new TeacherLoginActionListener();/注冊事件bt2.addActionListener(new StudentLoginActionListener();/注冊事件cp = getContentPane();this.setBounds(200, 200, p1.getHeight(), p1.getHeight();cp.add(p1);this.setTitle("用戶登錄界面");this.setSize(400, 400);this.setVisible(true);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););class TeacherLoginActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e)new EmployeeDD();dispose(); class StudentLoginActionListener implements ActionListener public void actionPerformed(ActionEvent e) new ManagerDD(); dispose(); public static void main(String args) new LoginDD(); 截圖如下: 圖1 用戶登錄主界面(2) ManagerDD類:此類為管理員登陸界面,在這個界面上有兩個文本框,分別輸入管理員姓名和登錄密碼,還有兩個按鈕,登陸和退出。輸入后,從兩個文本框中獲取用戶輸入的內(nèi)容,點(diǎn)擊“登陸”按鈕時,調(diào)用Workerfirst類中的managerLogin()方法驗(yàn)證是否存在該用戶。若存在,則創(chuàng)建Mainlogin類的對象,即打開教職工簡介界面進(jìn)行操作,若不存在,則提示密碼錯誤。 ManagerDD類源代碼:package finallys;import java.awt.*;import java.awt.event.*;import javax.swing.*;import first.Workerfirst;public class ManagerDD extends JFrameJLabel l1, l2;JTextField t1;JPasswordField t2;JButton bt1, bt2;Container cp;public static String st1;public String st2;public ManagerDD()l1 = new JLabel("管理員姓名");l2 = new JLabel("密碼");t1 = new JTextField(12);t2 = new JPasswordField(12);bt1 = new JButton("教職工信息管理");bt2 = new JButton("退出");JPanel p1 = new JPanel();p1.setLayout(null);l1.setBounds(150, 150, 80, 40);p1.add(l1);t1.setBounds(250, 150, 80, 30);p1.add(t1);l2.setBounds(150, 190, 80, 40);p1.add(l2);t2.setBounds(250, 190, 80, 30);p1.add(t2);bt1.setBounds(150, 230, 150, 30);p1.add(bt1);bt2.setBounds(320, 230, 80, 30);p1.add(bt2);bt1.addActionListener(new LoginActionListener();/注冊事件bt2.addActionListener(new ExitActionListener();/注冊事件cp = getContentPane();this.setBounds(200, 200, p1.getHeight(), p1.getHeight();cp.add(p1);this.setTitle("管理員登錄界面");this.setSize(400, 400);this.setVisible(true);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System.exit(0); );class LoginActionListener implements ActionListener public void actionPerformed(ActionEvent e) st1 = t1.getText();st2 = t2.getText();Workerfirst workerfirst = new Workerfirst();boolean isSuccess = workerfirst.managerLogin(st1, st2);if (isSuccess) new Mainlogin();dispose(); elseJOptionPane.showMessageDialog(null, "用戶名密碼錯誤", "提示信息",JOptionPane.INFORMATION_MESSAGE);class ExitActionListener implements ActionListener public void actionPerformed(ActionEvent e) System.exit(0);public static void main(String args) new ManagerDD(); 截圖如下: 圖2 管理員登錄界面 圖3 教職工教學(xué)與簡介信息操作 (3)Managerteaching類:此類為教職工教學(xué)界面,這個界面上有一個標(biāo)簽和一個表格。標(biāo)簽中從ManagerDD類中獲取教職工登錄時使用的用戶名,顯示在標(biāo)簽中以表示以下是某某教職工的教學(xué)信息。表格中為此學(xué)生的成績。調(diào)用Teachinfirst類中的queryTeaching(),將得到的ArrayList對象lis放入Vector對象中,形成表格。Managerteaching類源代碼:package finallys;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.*;import javax.swing.event.*;import javax.swing.table.DefaultTableModel;import second.Teaching;import first.Teachingfirst;public class Managerteaching extends JFrameString aa=ManagerDD.st1;JLabel selectionLabel;JPanel topPanel;Container container;JTable table; JScrollPane bookScrollPane;JPanel bott