Java-Single-Player-Version des Buchhandelsverwaltungssystems (Praxis Design Module und Ideas_Series 1): //www.vevb.com/article/91004.htm
einführen
TIPP: Am obigen Punkt befindet sich ein Verzeichnis, mit dem Sie schnell die Klassen finden können, die Sie sehen müssen.
Heute wurde eine kleine Änderung des vorherigen Code vorgenommen, um den Code perfekter zu machen.
Für den eindeutigen Identifikationscode des Benutzers wird er in Zukunft so geändert, dass sie im Programm intern generiert werden.
Die aktuelle UUID wird vom Benutzer weiterhin festgelegt.
Für dieses Programm haben wir heute einen Teil der Präsentationsschicht der Benutzeroberfläche hinzugefügt und die Aufzählung der öffentlichen Klasse hinzugefügt.
Nachfolgend finden Sie eine Veröffentlichung aller Codes für das Programm, das ich geschrieben habe: Ich werde dieses Programm nach und nach beenden, bitte seien Sie versichert! (Die Funktionen, die implementiert werden müssen, finden Sie in der Reihe von Buchhandlungsmanagementsystemen. Ich habe die Artikel für diese Serie klassifiziert, damit jeder sie finden kann.)
Diese Serie von Blogs wird niemals unterbrochen.
Der Code ist jetzt geschichtet:
Das Bild nach dem Programm wird ausgeführt:
Ich habe den Code in der Bestellung von oben nach unten im Verzeichnis gepostet:
Bitte beachten Sie! Diese Code -Bestellung ist nicht die Bestellung, die ich den Code schreibe!
Wenn Sie sich auf mein Schreiben beziehen möchten, folgen Sie bitte nicht der Reihenfolge des Code, den ich gepostet habe.
Sie sollten zuerst öffentliche Klassen und Werkzeugkurse schreiben.
Wieder: Datenschichtklasse -> logische Ebenenklasse -> Präsentationsschichtklasse
Einige Bilder nach dem Laufen des Programms:
Usertypeenum -Klasse:
cn.hncu.bookstore.common;
Usertypeenum -Klasse:
Paket cn.hncu.bookstore.common;/*** Funktion: Aufzählung der Benutzertypen! <br/> * in einem öffentlichen Modul definiert. <br/> * Variablen: <br/> * admin (1, "Super Administrator"), <br/> * Buch (2, "Bibliothekar"), <br/> * in (3, "Kaufadministrator"), <br/> * out (4, "Vertriebsadministrator"), <br/> * staats (5, förgliche administrator "). UserTypeenum {admin (1, "Super Administrator"), Buch (2, "Bibliothekar"), in (3, "Kaufadministrator"), out (4, "Vertriebsadministrator"), Aktien (5, "Inventory Administrator"); privater Final INT -Typ; private endgültige Zeichenfolge Name; / *** Initialisieren Sie den Namen der Aufzählungvariablen* @param Typ --- Integer-Nummer, die der Aufzählungsvariablen entspricht this.name = name; } / *** Erhalten Sie die Anzahl der aktuellen Aufzählungsvariablen* @Return --- Typ-Number* / public int GettType () {return type; } / *** Holen Sie sich den chinesischen Namen der aktuellen Aufzählungvariablen* @Return --- Name-chinesischer Name* / public String getName () {return name; } /*** Erhalten Sie den chinesischen Namen der Aufzählungsvariablen, die der Nummer basierend auf der Int-Nummer* @param-Typ --- Der int-Parameter, der übergeben werden muss* @Return --- Wenn eine Aufzählungsvariable vorliegt, die einer solchen Zahl entspricht, wird der chinesische Name der Aufzählungsvariablen zurückgegeben. * <br/>-Wenn es keine Aufzählungsvariable gibt, die einer solchen Zahl entspricht, wird eine Ausnahmenachricht geworfen. */ public static String getNamebyType (int type) {for (userTypeenum userType: userTypeenum.values ()) {if (userType.gettType () == Typ) {return userType.getName (); }} Wirf eine neue illegalArgumentException ("Es gibt keinen entsprechenden Benutzertyp in der Aufzählung:"+Typ); }/** * Erhalten Sie den int-Typ der Aufzählungsvariablen, der dem Namen basierend auf dem chinesischen Namen der Aufzählungsvariablen entspricht. Int GetTypebyname (String -Name) {für (userTypeenum userType: userTypeenum.Values ()) {if (userType.getName (). Equals (Name)) {return userType.getType (); }} Wirf eine neue illegalArgumentException ("Es gibt keinen entsprechenden Benutzertyp in der Aufzählung:"+Name); }}UserBi -Schnittstelle:
cn.hncu.bookstore.user.business.ebi;
UserBi -Schnittstelle:
Paket cn.hncu.bookstore.user.business.ebi; import Java.util.List; importieren cn.hncu.bookstore.user.vo.usermodel cn.hncu.bookstore / *** Funktion: Erstellen Sie einen Benutzer** @param usermodel --- Benutzerdaten zu erstellen* @Return --- wahre Mittel Erstellung erfolgreich, falsch Mittelerstellung fehlgeschlagen* / public boolean create (UsModel-Benutzer); / ** * Funktion: Löschen Sie einen Benutzer basierend auf dem eindeutigen Identifikationscode des Benutzers. / *** Funktion: Ändern Sie die Dateninformationen des Benutzers** @param Benutzer --- Benutzerdatenparameter Name, der geändert werden muss / *** Funktion: Holen Sie sich alle Benutzerdaten** @return --- Eine UsModel-Sammlung, dh die Daten des Benutzers*/ öffentliche Liste <BENEMODEL> getAll (); /** * Funktion: Suchen Sie nach bestimmten Suchbedingungen, * <br/> * Benutzerdaten zurück, die den Suchbedingungen entsprechen. ** @param uqm --- eingekapselte Suchbedingungen* @return ---- Benutzerdatensatz, der den Suchbedingungen entspricht / *** Funktion: Holen Sie sich eine bestimmte Benutzerdaten** @param uUid --- Benutzer eindeutiger Identifikationscode* @Return --- Geben Sie die nach diesem eindeutigen Identifikationscode gefundenen Benutzerdaten zurück*/ public UsModel Getingle (String uUid);}
Userebo -Klasse:
cn.hncu.bookstore.user.business.ebo;
Userebo -Klasse:
Paket cn.hncu.bookstore.user.business.ebo; import Java.util.list; import cn.hncu.bookstore.user.business.ebi.userebi; importieren cn.hncu.bookstore.user.dao.dao.userdao; cn.hncu.bookstore.user.dao.factory.userdaofactory; importieren cn.hncu.bookstore.user.vo.usermodel cn.hncu.bookstore.user.vo.userqueryModel; öffentlich -userebo -implementle userebi {private userdaoooooooooooooooooooooo- @Override public boolean create (UsModel -Benutzer) {return Dao.Create (Benutzer); } @Override public boolean delete (String uUid) {return dao.delete (uUid); } @Override public boolean update (UsModel -Benutzer) {return dao.update (Benutzer); } @Override publiclist <BenerOmodel> getAll () {return dao.getall (); } @Override öffentliche Liste <BenermoDel> getByCondition (UserQueryModel UQM) {// Todo automatisch generierte Methode Stub return null; } @Override public UsModel GetSingle (String uUid) {return dao.getSingle (uUid); }}UserBifactory -Klasse:
cn.hncu.bookstore.user.business.factory;
UserBifactory -Klasse:
Paket cn.hncu.bookstore.user.business.factory; import cn.hncu.bookstore.user.business.ebi.Userebi; }}
Benutzerdao -Schnittstelle:
cn.hncu.bookstore.user.dao.dao;
Benutzerdao -Schnittstelle:
Paket cn.hncu.bookstore.user.dao.dao; import Java.util.list; importieren cn.hncu.bookstore.user.vo.USModel; UserDao { / *** Funktion: Erstellen Sie einen Benutzer** @param UsModel --- Benutzerdaten, die erstellt werden sollen / ** * Funktion: Löschen Sie einen Benutzer basierend auf dem eindeutigen Identifikationscode des Benutzers. / *** Funktion: Ändern Sie die Dateninformationen des Benutzers** @param Benutzer --- Benutzerdatenparameter Name, der geändert werden muss / *** Funktion: Holen Sie sich alle Benutzerdaten** @return --- Eine UsModel-Sammlung, dh die Daten des Benutzers*/ öffentliche Liste <BENEMODEL> getAll (); /** * Funktion: Suchen Sie nach bestimmten Suchbedingungen, * <br/> * Benutzerdaten zurück, die den Suchbedingungen entsprechen. ** @param uqm --- eingekapselte Suchbedingungen* @return ---- Benutzerdatensatz, der den Suchbedingungen entspricht / *** Funktion: Holen Sie sich eine bestimmte Benutzerdaten** @param uUid --- Benutzer eindeutiger Identifikationscode* @Return --- Geben Sie die nach diesem eindeutigen Identifikationscode gefundenen Benutzerdaten zurück*/ public UsModel Getingle (String uUid);}UserDaofactory -Klasse:
cn.hncu.bookstore.user.dao.factory;
UserDaofactory -Klasse:
Paket cn.hncu.bookstore.user.dao.factory; import cn.hncu.bookstore.user.dao.dao.userdao; import cn.hncu.bookstore.user.dao.impl.UserdaoSimpl; 1.0 * */public class userDaofactory {public static userDao getUserdao () {Neue userDaoSerImpl () zurückgeben; }}UserDaoSerImpl -Klasse:
cn.hncu.bookstore.user.dao.impl;
UserDaoSerImpl -Klasse:
Paket cn.hncu.bookstore.user.dao.impl; import Java.util.arrayList; importieren java.util.list; import cn.hncu.bookstore.user.dao.dao.Userdao; cn.hncu.bookstore.user.vo.userquerymodel; importieren cn.hncu.bookstore Datei_name = "user.txt"; @Override public boolean create (UsModel -Benutzer) {// 1 Deserialize (lesen) Die vorhandene Datenliste <BENEMODEL> list = fileOutil.readFormFile (Datei_Name); // 2 Bestimmen Sie, ob der Benutzer bereits existiert, und entscheiden Sie dann, ob er erstellt werden soll (UsModel UsModel: Liste) {// Wenn die UUIDs der beiden Benutzer gleich sind, ist der Benutzer der gleiche if (UsModel.getuUid (). Equals (Benutzer.GetuUid ()) {{{{{{uswes). DateiEoutil.write2File (Liste, Datei_Name); Return true; // erfolgreich erstellen, true} @Override public boolean delete (String uUid) {// 1 Erste Deserialize (Lesen) Die vorhandene Datenliste <BENEMODEL> list = FileEoutil.readFormFile (Datei_Name); // 2 Bestimmen Sie, ob der Benutzer bereits existiert, und entscheiden Sie dann, ob // für (int i = 0; i <list.size (); i ++) {// if (list.get (i) .getuUid (). Equals (uUid)) {// list.remove (i); // FileEoutil.Write2File (Liste, File_Name); // true zurück; //} //} für (UsModel userModel: list) {// Wenn die UUIDs von 2 Benutzern gleich sind, ist der Benutzer der gleiche if if (UsModel.getuUid (). Equals (UUID)) {list.remove (UsModel); DateiEoutil.write2File (Liste, Datei_Name); // erfolgreich löschen, true return true; }} // 3 Der Benutzer existiert nicht // fehlgeschlagen, falsche zurücksenden false; } @Override public boolean update (UsModel -Benutzer) {// 1 Deserialize (lesen) Die vorhandene Daten erste Liste <BENEMODEL> list = fileOutil.readFormFile (File_Name); // 2 Bestimmen Sie, ob der Benutzer bereits existiert, und entscheiden Sie dann, ob er für (int i = 0; i <list.size (); i ++) {// uUid nicht geändert werden soll. Suchen Sie die Benutzerdaten über UUID und ändern Sie es in Ordnung, wenn (list.get (i) .GetuUid (). Equals (user.getuUid ())) {// Ändern Sie den gefundenen Benutzer in der Benutzerliste.set (i, Benutzer). DateiEoutil.write2File (Liste, Datei_Name); // den Benutzer finde und true Return true zurück. }} // 3 Wenn der Benutzer nicht vorhanden ist, gibt die Änderung FALSE nicht zurück. } @Override publiclist <BENEMODEL> getAll () {return FileEoutil.readFormFile (Datei_Name); } @Override öffentliche Liste <BenermoDel> getByCondition (UserQueryModel UQM) {// Todo automatisch generierte Methode Stub return null; } @Override public UsModel GetSingle (String uUid) {// 1 Deserialize (lesen) Die vorhandene Daten erste Liste <BENEMODEL> list = fileOutil.readFormFile (File_Name); // 2 Bestimmen Sie, ob der Benutzer bereits existiert und ob er existiert, den Benutzer für (int i = 0; i <list.size (); i ++) {if (list.get (i) .getuUid (). Equals (UUID)) {return list.get (i); }} // 3 Wenn der Benutzer nicht existiert, return null return null; }}Addpanel -Klasse:
cn.hncu.bookstore.user.ui;
Addpanel -Klasse:
/ * * Addpanel.java * * Erstellt auf __date__, __Time__ */Paket cn.hncu.bookstore.user cn.hncu.bookstore.user.business.ebi.Userebi; import Cn.Hncu.Bookstore.user.business.factory.USeRebifactory Cn.Hncu.Bookstore.user.vo.usermodel; Haoxiang*/public class addpanel erweitert javax.swing.jpanel {private jframe mainframe = null; / ** Erstellt ein neues Formular addpanel*/ public addpanel (jframe mainframe) {this.mainframe = mainframe; initcomponents (); myinitdata (); } private void myInitData () {für (userTypeenum type: userTypeenum.Values ()) {combType.additem (type.getName ()); }} /** Diese Methode wird innerhalb des Konstruktors aufgerufen, um das Formular zu initialisieren. * WARNUNG: Ändern Sie diesen Code nicht. Der Inhalt dieser Methode wird vom Formular Editor immer wiederhergestellt. */// gen-Begin: initComponents // <editor-fold defaultState = "Collapsed" Desc = "generierter Code"> private void initcomponents () {jlabel1 = new javax.swing.jlabel (); JLabel2 = new Javax.swing.jlabel (); tfdname = new javax.swing.jtextfield (); JLabel3 = new javax.swing.jlabel (); tfduuid = new javax.swing.jtextfield (); JLabel4 = new javax.swing.jlabel (); tfdpwd2 = new javax.swing.jpasswordfield (); JLabel5 = new Javax.swing.jlabel (); jlabel6 = new Javax.swing.jlabel (); combType = new javax.swing.jcombobox (); tfdpwd = new javax.swing.jpasswordfield (); btnadd = new javax.swing.jbutton (); btnback = new javax.swing.jbutton (); setMinimumsize (New Java.awt.Dimension (800, 600)); setLayout (null); JLabel1.SetFont (New Java.awt.font ("Microsoft Yahei", 1, 48)); jLabel1.setforegrown (New Java.awt.Color (204, 0, 0)); jLabel1.setText ("/u6dfb/u52a0/u7528/u6237"); add (jlabel1); JLabel1.SetBounds (270, 30, 230, 80); JLabel2.setfont (New Java.awt.font ("Microsoft Yahei", 0, 18)); jLabel2.setText ("/u7528/u6237/u7c7b/u578b:"); add (jlabel2); JLabel2.SetBounds (40, 310, 90, 30); tfdname.setfont (new java.awt.font ("Dialog", 1, 18)); tfdname.setAutoscrolls (false); add (tfdname); tfdname.setBounds (420, 160, 120, 30); JLabel3.setFont (New Java.awt.font ("Microsoft Yahei", 0, 18)); JLabel3.setText ("UUID:"); add (jlabel3); JLabel3.SetBounds (70, 160, 50, 30); tfduuid.setfont (new java.awt.font ("Dialog", 0, 11)); add (tfduuid); tfduuid.setBounds (140, 160, 110, 30); JLabel4.setfont (New Java.awt.font ("Microsoft Yahei", 0, 18)); jLabel4.setText ("/u59d3/u540d:"); add (jlabel4); JLabel4.SetBounds (360, 160, 50, 30); add (tfdpwd2); tfdpwd2.setBounds (420, 240, 170, 30); JLabel5.setFont (New Java.awt.font ("Microsoft Yahei", 0, 18)); jLabel5.setText ("/u5bc6/u7801:"); add (jlabel5); JLabel5.SetBounds (70, 240, 50, 30); JLabel6.Setfont (New Java.awt.font ("Microsoft Yahei", 0, 18)); jLabel6.setText ("/u786e/u8ba4/u5bc6/u7801:"); add (jlabel6); JLabel6.Setbounds (330, 240, 90, 30); combType.setfont (new Java.awt.font ("Dialog", 1, 18)); combType.setforenground (New Java.awt.Color (51, 51, 255)); combType.setModel (new javax.swing.defaultcombobOxModel (neuer String [] {"Bitte auswählen ..."}); add (combType); Combype.SetBounds (140, 310, 160, 30); tfdpwd.setfont (new Java.awt.font ("安一", 1, 18)); add (tfdpwd); tfdpwd.setBounds (140, 240, 160, 30); btnadd.setfont (new Java.awt.font ("Dialog", 1, 24)); btnadd.setforegrown (New Java.awt.Color (0, 204, 204)); btnadd.setText ("/u6dfb/u52a0"); btnadd.addactionListener (new java.awt.event.actionListener () {public void ActionPerformed (java.awt.event.ActionEvent evt) {btnaddActionperformed (evt);}}); add (btnadd); Btnadd.SetBounds (140, 430, 120, 60); btnback.setfont (new java.awt.font ("Dialog", 1, 24)); btnback.setforegrown (New Java.awt.Color (0, 204, 204)); btnback.setText ("/u8fd4/u56de"); btnback.addactionListener (new java.awt.event.actionListener () {public void actionPerformed (java.awt.event.ActionEvent evt) {btnbackActionperformed (evt);}}); add (btnback); btnback.setBounds (470, 430, 120, 60); } // </editor-fold> // gen-end: initComponents private void back () {mainframe.setContentPane (New ListPanel (Mainframe)); Mainframe.Validate (); } / ***Button zurückhören*@param klicken Sie auf die Rückgabeschaltfläche* / private void btnbackActionperformed (java.awt.event.ActionEvent evt) {back (); } private void btnaddActionPerformed (java.awt.event.ActionEvent evt) {// 1 sammeln Parameter String uUid = tfduuid.getText (); String name = tfdname.getText (); String pwd = new String (tfdpwd.getPassword ()); String pwd2 = new String (tfdpwd2.getPassword ()); if (! pwd.equals (pwd2)) {joptionpane.showMessagedialog (NULL, "Die Kennworteingänge sind zweimal inkonsistent, bitte gehen Sie wieder ein!"); zurückkehren; } int type = 0; try {type = userTypeenum.gettypebyname (combType.getSelectedItem () .ToString ()); } catch (Ausnahme e) {joptionpane.showMessagedialog (NULL, "Bitte geben Sie den Benutzertyp an!"); zurückkehren; } // 2 organisieren Parameter UsModel user = new UsModel (); user.setName (name); user.setPWD (PWD); user.setType (Typ); user.setuuid (uUid); // 3 rufen Sie die Logic Layer Userebi EBI = UserBifactory.getUserebi () an; // 4Direct zu verschiedenen Seiten gemäß dem von dem Anruf zurückgegebenen Ergebnis if (ebi.create (Benutzer)) {back (); } else {joptionpane.showMessagedialog (null, "dieser Benutzer existiert bereits!"); }} // gen -Begin: Variablen // Variablen Deklaration - Nicht private javax.swing.jbutton btnadd; private javax.swing.jbutton btnback; private javax.swing.jcombobox combype; private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel2; private javax.swing.jlabel jlabel3; private javax.swing.jlabel jlabel4; private javax.swing.jlabel jlabel5; private javax.swing.jlabel jlabel6; private javax.swing.jtextfield tfdname; private javax.swing.jpasswordfield tfdpwd; private javax.swing.jpasswordfield tfdpwd2; private javax.swing.jtextfield tfduuid; // Ende der Variablen Deklaration // Gen-end: Variablen}Listpanel -Klasse:
cn.hncu.bookstore.user.ui;
Listpanel -Klasse:
/ * * ListPanel.java * * erstellt auf __date__, __Time__ */Package cn.hncu.bookstore.user cn.hncu.bookstore.user.business.factory.userebifactory; importieren cn.hncu.bookstore.user.vo.usermodel;/*** Präsentationsschicht-Benutzer-Listen-Panel** @Author chen haoxiang* @Version 1.0*/public class ListPanel. / ** Erstellt neue Formularlistenpanel*/ public ListPanel (JFrame Mainframe) {this.mainframe = mainframe; initcomponents (); myinitdata (); } / *** Lesen Sie alle Benutzer und fügen Sie sie der Liste hinzu* / private void myInitdata () {userebi user = userebifactory.getUerebi (); List <SustrerModel> list = user.getall (); userLists.setListData (list.toArray ()); } /** Diese Methode wird innerhalb des Konstruktors aufgerufen, um das Formular zu initialisieren. * WARNUNG: Ändern Sie diesen Code nicht. Der Inhalt dieser Methode wird vom Formular Editor immer wiederhergestellt. */// gen-begin: initComponents // <editor-fold defaultState = "Collapsed" Desc = "generierter Code"> private void initcomponents () {jscrollpane1 = new javax.swing.jscrollpane (); userLists = new javax.swing.jlist (); JLabel1 = new javax.swing.jlabel (); btntoadd = new javax.swing.jbutton (); setMinimumsize (New Java.awt.Dimension (800, 600)); setLayout (null); userLists.setModel (new javax.swing.abstractListModel () {String [] Strings = {""}; public int getSize () {return Strings.length;} öffentliches Objekt getElementat (int i) {return Strings [i];}}); jScrollPane1.SetViewPortView (Benutzerlisten); add (jscrollpane1); JScrollPane1.Setbounds (150, 150, 480, 230); JLabel1.Setfont (New Java.awt.font ("Tahoma", 1, 48)); jLabel1.setforegrown (New Java.awt.Color (204, 0, 51)); JLabel1.SetText ("Benutzer"); JLabel1.SetText ("Benutzer"); jLabel1.setforegrown (New Java.awt.Color (204, 0, 51)); JLabel1.SetText ("Benutzer"); Liste "); add (jlabel1); jlabel1.setBounds (270, 30, 260, 80); Btntoadd.AddactionListener (new Java.awt.event.ActionListener () {public voidPerformed (java.awt.event.ActionEvent evt) {btntoaddActionPerformed (evt);}); </editor-fold> // gen-End: Initcomponents private void btntoaddactionperformed (java.awt.event.ActionEvent evt) {mainframe.setContentPane (neuer Addpanel (Mainframe); BTNTOADD;Usermodel -Klasse:
cn.hncu.bookstore.user.vo;
Usermodel -Klasse:
User Value -Objektmodul:
Paket cn.hncu.bookstore.user.vo; import Java.io.Serializable; importieren cn.hncu.bookstore.common.usertypeenum;/** * @Author Chen Haoxiang * @version 1.0 * * <br/> * Value -Objekt, das Benutzerinformationen speichert <br/> * 1. SETTER-GTERTERS-Methode <br/> * 3. Schreiben Sie die Methode Equals and HashCode --- Verwenden Sie den Primärschlüssel (UUID) eindeutiger Identifikationscode <br/> * 4. TOString-Methode <br/> * 5. pwd; // Benutzerkennwort public userModel () {}/*** Funktion: uUid-user eindeutig Identifikationscode** @return return UUID-Benutzer eindeutiger Identifikationscode*/public String getuUid () {return UUID; } / *** Funktion: Setzen Sie den Uuid-Benutzer eindeutigen Identifikationscode* @param uUid-user eindeutig Identifikations-Code-String-Typ Parameter* / public void setUuid (String uUid) {this.uuid = uUid; } / *** Funktion: Erhalten Sie den Benutzernamen des Benutzers* @return --- name-username* / public String getName () {return name; } / *** Funktion: Setzen Sie den Benutzernamen des Benutzers** @param Name-Nutzenname vom Benutzer festgelegt, String-Typ Parameter* / public void setName (String-Name) {this.name = name; } / *** Funktion: Holen Sie sich den Typ des Benutzers:* 1 - Repräsentiert Admin, und alle Vorgänge können ausgeführt werden.* 2 - repräsentiert die Person, die das Buchmodul betreiben kann } / *** Funktion: Setzen Sie den Typ des Benutzers:* 1 - als admin bezeichnet, alle Vorgänge können ausgeführt werden* 2 - als Person bezeichnet, die Buchmodule betreiben kann* 3 - als Person bezeichnet, die Kaufmodule bedienen kann this.type = Typ; } / *** Funktion: Holen Sie sich das Kennwort des Benutzers* @Return String -Typ, Benutzerkennwort* / public String getPwd () {return pwd; } / *** Funktion: Setzen Sie das Kennwort des Benutzers* @param pwd- STRING-Typ Parameter* / public void setpwd (String pwd) {this.pwd = pwd; } @Override public int HashCode () {final int prime = 31; int result = 1; result = prime * result + ((uUid == null)? 0: uUid.hashCode ()); Rückgabeergebnis; } @Override public boolean Equals (Objekt obj) {if (this == obj) return true; if (obj == null) return false; if (getClass ()! = obj.getClass ()) return false; UsModel Andere = (UsModel) obj; if (uUid == null) {if (other.uUid! = null) return false; } else if (! uUid.equals (other.uUid)) return false; zurückkehren; } @Override public String toString () {return UUID + "," + name + "," + userTypeenum.getNamebyByType (Typ); }}UserQueryModel -Klasse:
cn.hncu.bookstore.user.vo;
UserQueryModel -Klasse:
Obwohl es keinen Code gibt, kann er nicht ignoriert werden! Dies ist, was Sie brauchen, wenn Sie nach Benutzern suchen.
Ich habe den Grund in der Serie geschrieben.
Paket cn.hncu.bookstore.user.vo;/** * * @author chen haoxiang * * @version 1.0 */public class UserQuerModel erweitert UsModel {}DateiEoutil -Klasse:
cn.hncu.bookstore.util;
DateiEoutil -Klasse:
Paket cn.hncu.bookstore.util; import Java.io.file; import Java.io.fileinputstream; import Java.io.FilenotFoundException; import Java.io.fileOutputStream importieren Java.io.IOISICUMCEAM; java.util.arraylist; import Java.util.list; importieren javax.swing.joptionpane;/*** Benutzer öffentliche Daten lesen und schreiben Klasse* @author chen haoxiang** @Version 1.0*/public class FileOutil {Public Fileoutil () {{}/*** Die Datentody -Dateinamen. Tabelle) * @return Records aller Tabellen! */@Suppresswarnings ("deaktiviert") // WARNING PUBLIC STATIC <E> LIST <E> readformfile (String -Dateiname) {list <E> list = new ArrayList <E> (); endgültige Datei Datei = neue Datei (Dateiname); ObjectInputStream in = null; if (! file.exists ()) {//joptionpane.showMessagedialog(Null, "Die Datentabelle existiert nicht!"); Rückgabeliste; } try {in = new ObjectInputStream (neuer FileInputStream (Dateiname)); try {list = (list <e>) in.readObject (); } catch (classNotFoundException e) {e.printstacktrace (); }} catch (FilenotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } endlich {if (in! = null) {try {in.close (); } catch (ioException e) {neue runimeexception ("Datenbank schließen fehlgeschlagen"); }}} Rückgabeliste; } / ** * Schreiben Sie eine Listensammlung in den Datendatei -Dateinamen * * @paramliste (die Datenerfassung, die gespeichert werden muss) * @param Dateiname (der Dateiname, an den die Datei geschrieben wurde) * / public static <e> void write2File (Liste <E> Liste, String FileName) {ObjectOutputStream Out = null; try {out = new ObjectOutputStream (neuer FileOutputStream (Dateiname)); out.WriteObject (Liste); } catch (FilenotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } endlich {if (out! = null) {try {out.close (); } catch (ioException e) {neue runTimeexception werfen ("Datenbank schließen fehlgeschlagen!"); }}}}}}}}}} Buchhandlungsklasse: (einschließlich Hauptmethode)
Cn.Hncu.Bookstore;
Buchhandlungsklasse:
Die Hauptmethode des Benutzermoduls befindet sich in dieser Klasse:
/ * * Bookstore.java * * erstellt auf __date__, __time__ */package cn.hncu.bookstore; importieren cn.hncu.bookstore.user.ui.listpanel;/** * * @author chen haoxiang */public class bookstore erweitert jav.swing initcomponents (); this.setContentPane (neue ListPanel (this)); this.setResizable (false); // this.setDefaultCloseOperation (exit_on_close); } /** Diese Methode wird innerhalb des Konstruktors aufgerufen, um das Formular zu initialisieren. * WARNUNG: Ändern Sie diesen Code nicht. Der Inhalt dieser Methode wird vom Formular Editor immer wiederhergestellt. */// gen-Begin: initComponents // <editor-fold defaultState = "Collapsed" Desc = "generierter Code"> private void initcomponents () {MenuBar = new javax.swing.jmenubar (); filemenu = new javax.swing.jmenuitem = new Javax.swing.jmenuitem (); Savemenuitem = new Javax.swing.jmenuitem (); SaveasMenuitem = new javax.swing.jmenuitem (); exitMenuitem = new javax.swing.jmenuitem (); editMenu = new javax.swing.jmenuitem (); cutMenuitem = new javax.swing.jmenuitem (); cutMenuitem = new javax.swing.jmenuitem (); editMenu = new javax.swing.jmenu (); cutMenuitem = new javax.swing.jmenuitem (); copyMenuitem = new Javax.swing.jmenuitem (); pastemenuitem = new javax.swing.jmenuitem (); deletemenuitem = new javax.swing.jmenuitem (); helpMenu = new javax.swing.jmenuitem (); contentsMenuitem = new Javax.swing.jmenuitem (); übermenuitem = new javax.swing.jmenuitem (); setDefaultCloseOperation (javax.swing.windowconstants.exit_on_close); setMinimumsize (New Java.awt.Dimension (800, 600)); fileMenu.setText ("Datei"); openMenuitem.setText ("Open"); filemenu.add (OpenMenuitem); SaveMenuitem.SetText ("Save"); filemenu.add (Savemenuitem); SaveasMenuitem.SetText ("Save as ..."); filemenu.add (SaveasMenuitem); exitMenuitem.setText ("exit"); exitMenuitem.addactionListener (new java.awt.event.actionListener () {public void ActionPerformed (java.awt.event.ActionEvent evt) {exitMenuitemactionemactionemActionPerformed (evt);}}); filemenu.add (exitMenuitem); Menubar.Add (Filemenu); editMenu.setText ("bearbeiten"); cutMenuitem.setText ("cut"); editMenu.add (CutMenuitem); CopyMenuitem.setText ("Copy"); editMenu.add (CopyMenuitem); Pastemenuitem.setText ("Paste"); editMenu.add (Pastemenuitem); deletemenuitem.setText ("delete"); editMenu.add (deletemenuitem); Menubar.Add (Editmenu); helpMenu.setText ("Hilfe"); contentsMenuitem.setText ("Inhalt"); helpMenu.add (ContentsMenuitem); übermenuitem.setText ("über"); helpMenu.add (überMenuitem); Menubar.Add (Helpmenu); setjmenubar (Menubar); javax.swing.grouplayout layout = new javax.swing.grouplayout (getContentPane ()); getContentPane (). setLayout (Layout); layout.sethorizontalgroup (layout.CreateParallelGroup (javax.swing.grouplayout.Alignment.leading) .addgap (0, 400, Short.max_value)); Layout.SetverticalGroup (Layout.CreateParallelGroup (javax.swing.grouplayout.Alignment.leading) .Addgap (0, 279, Short.max_value)); Pack(); } // </editor-fold> // gen-end: initComponents private void exitMenuitemactionPerformed (java.awt.event.ActionEvent evt) {// genirst: event_exitMenuitemaction-peracting-system.exit (0); } // Gen-Last: event_exitMenuitemactionperformed/** * @param args die Befehlszeilenargumente */public static void main (String args []) {java.awt.eventqueue.invokelater (new Runnable () {public void run () {New BookStore (). } // Gen -Begin: Variablen // Variablen Deklaration - Nicht private javax.swing.jMenuitem orsMenuitem ändern; private javax.swing.jmenuitem contentsMenuitem; private javax.swing.jmenuitem copymenuitem; private javax.swing.jmenuitem cutMenuitem; private javax.swing.jmenuitem Deletemenuitem; private javax.swing.jmenuitem exitMenuitem; private javax.swing.jmenu filemenu; private javax.swing.jmenu helpmenu; private javax.swing.jmenubar Menubar; private javax.swing.jmenuitem openMenuitem; private javax.swing.jmenuitem pastemenuitem; private javax.swing.jmenuitem SaveasMenuitem; private javax.swing.jmenuitem Savemenuitem; // Ende der Variablen Deklaration // Gen-end: Variablen} Das ist alles für heute, um fortzufahren. . .
Die aktuelle Addition gibt einen kleinen Fehler, der beim Hinzufügen eines Benutzers nichts eingeben.
Wählen Sie nur den Benutzertyp aus und Sie können ihn auch erstellen! Ich werde es das nächste Mal beheben.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.