Versão java-single-player do sistema de gerenciamento de livrarias (módulos de design de prática e idéias_series 1): //www.vevb.com/article/91004.htm
introduzir
Dica: existe um diretório no ponto acima que pode localizar rapidamente as classes que você precisa ver.
Hoje, foi feita uma pequena modificação para o código anterior para tornar o código mais perfeito.
Quanto ao código de identificação exclusivo do usuário, ele será modificado para ser gerado internamente no programa no futuro.
O UUID atual ainda está definido pelo usuário.
Hoje, para este programa, adicionamos parte da camada de apresentação da interface do usuário e adicionamos enumeração de classe pública.
Abaixo está uma publicação de todos os códigos para o programa que escrevi: terminarei gradualmente de escrever este programa, fique com certeza! (As funções que precisam ser implementadas podem ser encontradas na série de sistemas de gerenciamento de livrarias. Classifiquei os artigos para esta série, para que todos possam encontrá -los)
Esta série de blogs nunca será interrompida.
O código agora está em camadas:
A imagem após o programa está em execução:
Publiquei o código no pedido de cima para a parte inferior do diretório:
Observe! Este pedido de código não é o pedido que escrevo o código!
Se você deseja consultar a minha redação, não siga a ordem do código que publiquei.
Você deve primeiro escrever aulas públicas e aulas de ferramentas.
Novamente: Classe de camada de dados -> Classe de camada lógica -> Classe de camada de apresentação
Algumas fotos após a execução do programa está em execução:
Classe UserTypeenum:
cn.hncu.bookstore.common;
Classe UserTypeenum:
pacote cn.hncu.bookstore.common;/*** função: enumeração de tipos de usuário! <br/> * definido em um módulo público. <br/> * Variáveis: <br/> * admin (1, "super administrador"), <br/> * livro (2, "bibliotecário"), <br/> * em (3, "Administrador de compra"), <br/> * out (4, "Administrador de vendas"), <br/> * estoque (5, "Inventory Administrator"; {Admin (1, "Super Administrador"), livro (2, "Bibliotecário"), em (3, "Administrador de compra"), out (4, "Administrador de vendas"), Stock (5, "Inventory Administrator"); Tipo INT final privado; Nome da string final privada; / *** Inicialize o nome da variável de enumeração* @param tipo --- Número inteiro correspondente à variável de enumeração* Nome @param --- Nome do tipo String correspondente à variável de enumeração*/ private userTypeenum (int tipo, nome da string) {this.type = type; this.name = nome; } / *** Obtenha o número da variável de enumeração atual* @return --- tipo-número* / public int getType () {return type; } / *** Obtenha o nome chinês da variável de enumeração atual* @return --- name-chinese name* / public string getName () {return name; } /*** Obtenha o nome chinês da variável de enumeração correspondente ao número com base no número int* @param tipo --- O parâmetro int que deve ser passado* @return --- Se houver uma variável de enumeração correspondente a um número, o nome chinês da variável de enumeração for retornado. * <br/>-Se não houver variável de enumeração correspondente a esse número, uma mensagem de exceção será lançada. */ public static string getNameByType (int tipo) {for (userTypeenum userType: usertypeenum.values ()) {if (userType.getType () == tipo) {return userType.getName (); }} lança nova ilegalArgumentException ("Não há tipo de usuário correspondente na enumeração:"+tipo); }/** * Obtenha o tipo int da variável de enumeração correspondente ao nome com base no nome chinês da variável de enumeração * Nome @param --- Nome do tipo de string que precisa ser passado em * @return --- Se houver uma variável de enumeração, que não se corresponde a um nome que não se corresponde a um nome que não se corresponde a que o tipo não se corresponde a essa variável * <br/> static int getTypeByName (nome da string) {for (userTypeenum userType: userTypeenum.values ()) {if (userType.getName (). Equals (nome)) {return usertype.gettype (); }} lança nova ilegalArgumentException ("Não existe um tipo de usuário correspondente na enumeração:"+nome); }}Interface userebi:
cn.hncu.bookstore.user.business.ebi;
Interface userebi:
pacote cn.hncu.bookstore.user.business.ebi; importar java.util.list; importar cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userQueryModel;/** * interface da lógica lógica * * { / *** Função: Crie um usuário** @param userModel --- Dados do usuário a serem criados* @return --- true significa criação bem-sucedida, false significa criação falhada* / public boolean Create (UserModel User); / ** * Função: Exclua um usuário com base no código de identificação exclusivo do usuário uuid * * @param uuid --- Código de identificação exclusivo do usuário, cada usuário não será o mesmo * @return --- true significa que a exclusão é bem-sucedida, false significa que a deleção falhou */ Public boolean Delete (string uuid); / *** Função: Modifique as informações de dados do usuário** @param usuário --- Nome do parâmetro de dados do usuário que precisa ser modificado* @return return true- indica que a modificação é bem-sucedida, retornar false-indica que a modificação falhou*/ public boolean Atualize (Usermodel User); / *** Função: obtenha todos os dados do usuário** @return --- Uma coleção UserModel, ou seja, os dados do usuário*/ Lista pública <UserModel> getall (); /** * Função: Pesquise de acordo com certas condições de pesquisa, * <br/> * Retorne dados do usuário que atendem às condições de pesquisa. ** @param uqm --- Condições de pesquisa encapsuladas* @return ---- Conjunto de dados do usuário que atende às condições de pesquisa*/ Lista pública <UserModel> getByCondition (userQueryModel uqm); / *** Função: Obtenha um determinado Dados do Usuário** @param uuid --- Código de identificação exclusivo do usuário* @return --- Retorne os dados do usuário encontrados de acordo com este código de identificação exclusivo*/ public UserModel Getsingle (String uuid);}Classe USerebo:
cn.hncu.bookstore.user.business.ebo;
Classe USerebo:
pacote cn.hncu.bookstore.user.business.ebo; importar java.util.list; importar cn.hncu.bookstore.user.business.ebi.userebi; importação cn.hncu.bookstore.user.dao.dao.USERDAO; cn.hncu.bookstore.user.dao.factory.userdaofactory; importar cn.hncu.bookstore.user.vo.usermodel; importar cn.hncu.bookstore.user.vo.Vo.UserQueryModel; public userereblear suplements userebio {private userDao; @Override public boolean Create (UserModel User) {return Dao.create (usuário); } @Override public boolean Delete (string uuid) {return Dao.Delete (UUID); } @Override public boolean update (UserModel User) {return Dao.Update (Usuário); } @Override Public List <UserModel> getAll () {return Dao.getall (); } @Override Public List <UserModel> getByCondition (userQueryModel uqm) {// TODO Método Gerado Auto-Gerado Stub Return Null; } @Override public userModel getsingle (string uuid) {return Dao.getSingle (uuid); }}Classe UseReBifactory:
cn.hncu.bookstore.user.business.factory;
Classe UseReBifactory:
pacote cn.hncu.bookstore.user.business.factory; importar cn.hncu.bookstore.user.business.ebi.userebi; importar cn.hncu.bookstore.user.business.ebo.UsereBo; public class {Public STATICE.BUSEREBIEBIEBREREBRIEBREBREBSEREBSEBSEREBSEREBSEREBSEREBSEBRO (Public) (Public STATSEREBIREBIEBIREBIREBIREBIREBREBREBREBREBREBSEREBRO (Public (Public STATUREBIEBIEBSEREBSEBSEBSEBSEBSEBSEBSEBSEBSEBSEBSEBSEBSEBRO) }}Interface Userdao:
cn.hncu.bookstore.user.dao.dao;
Interface Userdao:
pacote cn.hncu.bookstore.user.dao.dao; importar java.util.list; importar cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userModel; interface userdao { / *** função: Crie um usuário** @param userModel --- Dados do usuário a serem criados* @return-True significa criação bem-sucedida, false significa criação falhou* / public boolean Create (Usermodel User); / ** * Função: Exclua um usuário com base no código de identificação exclusivo do usuário uuid * * @param uuid --- Código de identificação exclusivo do usuário, cada usuário não será o mesmo * @return --- true significa que a exclusão é bem-sucedida, false significa que a deleção falhou */ Public boolean Delete (string uuid); / *** Função: Modifique as informações de dados do usuário** @param User --- Nome do parâmetro de dados do usuário que precisa ser modificado* @return return true- significa que a modificação é bem-sucedida, retorna false- significa que a modificação falhou*/ public boolean update (Usermodel User); / *** Função: obtenha todos os dados do usuário** @return --- Uma coleção UserModel, ou seja, os dados do usuário*/ Lista pública <UserModel> getall (); /** * Função: Pesquise de acordo com certas condições de pesquisa, * <br/> * Retorne dados do usuário que atendem às condições de pesquisa. ** @param uqm --- Condições de pesquisa encapsuladas* @return ---- Conjunto de dados do usuário que atende às condições de pesquisa*/ Lista pública <UserModel> getByCondition (userQueryModel uqm); / *** Função: Obtenha um determinado Dados do Usuário** @param uuid --- Código de identificação exclusivo do usuário* @return --- Retorne os dados do usuário encontrados de acordo com este código de identificação exclusivo*/ public UserModel Getsingle (String uuid);}Classe UserDaofactory:
cn.hncu.bookstore.user.dao.factory;
Classe UserDaofactory:
pacote cn.hncu.bookstore.user.dao.factory; importar cn.hncu.bookstore.user.dao.dao.userdao; importar cn.hncu.bookstore.user.dao.impl.userdaoserImpl; ** ** fábrica Método <bring/> */public class UserDaoFactory {public static userdao getUserdao () {retorna novo userdaoserImpl (); }}Classe UserdaoserImpl:
cn.hncu.bookstore.user.dao.impl;
Classe UserdaoserImpl:
pacote cn.hncu.bookstore.user.dao.impl; importar java.util.arraylist; importar java.util.list; importar cn.hncu.bookstore.user.dao.dao.userdao; import cn.hncu.bookstore.USER.VO.VO.VO.VO.VO.VO.VO.VO.VOO.USO.USOLEL; cn.hncu.bookStore.user.vo.UserQueryModel;import cn.hncu.bookStore.util.FileIoUtil;/** * <br/> * Specific implementation class for user data processing---Implementing the UserDao interface* * @author Chen Haoxiang* * @version 1.0 */public class UserDaoSerImpl implements UserDao { private static final String File_name = "user.txt"; @Override public boolean Create (UserModel User) {// 1 Primeiro Deserialize (leia) a lista de dados existente <UserModel> list = FILEIOTIL.readFile (FILE_NAME); // 2 Determine se o usuário já existe e, em seguida, decida se deve criar para (UserModel UserModel: List) {// Se os uuids dos dois usuários forem iguais, o usuário é o mesmo se (uSermodel.getuUid (já não existe (Usuário). Fileioutil.write2file (list, file_name); retornar true; // Criar com sucesso, retorne true} @Override public boolean Delete (String uuid) {// 1 Primeiro Deserialize (leia) a lista de dados existente <UserModel> list = FILEIOUtil.readformfile (file_name); // 2 Determine se o usuário já existe e, em seguida, decida se excluir // para (int i = 0; i <list.size (); i ++) {// if (list.get (i) .Getuuid (). Iguals (uuid)) {// list.remove (i); // fileioutil.write2file (list, file_name); // retorna true; //} //} para (UserModel UserModel: List) {// Se os UUIDs de 2 usuários forem iguais, o usuário será o mesmo se (UserModel.GeUuID (). Iguals (uuid)) {list.Remove (UserModel); Fileioutil.write2file (list, file_name); // Excluir com sucesso, retorne a verdadeira retorno true; }} // 3 O usuário não existe // excluir falhado, retornar false retorno false; } @Override public boolean update (UserModel User) {// 1 Deserialize (leia) a primeira lista de dados existente <UserModel> list = FILEIOTIL.readFile (file_name); // 2 Determine se o usuário já existe e, em seguida, decida se deve criar para (int i = 0; i <list.size (); i ++) {// uuid não pode ser alterado. Encontre os dados do usuário através do UUID e modifique -os se bem se (list.get (i) .GeTuuid (). Equals (user.getuuid ())) {// modifique o usuário encontrado no usuário list.set (i, usuário); Fileioutil.write2file (list, file_name); // Encontre o usuário e retorne o verdadeiro retorno true; }} // 3 Se o usuário não existir, a modificação falha ao retornar falsa; } @Override Public List <UserModel> getAll () {return fileioutil.readformfile (file_name); } @Override Public List <UserModel> getByCondition (userQueryModel uqm) {// TODO Método Gerado Auto-Gerado Stub Return Null; } @Override public UserModel Getsingle (String uuid) {// 1 Deserialize (leia) a primeira lista de dados existentes <UseMerModel> list = FILEIOTIL.ReadFile (File_Name); // 2 Determine se o usuário já existe e, se existe, retorne o usuário para (int i = 0; i <list.size (); i ++) {if (list.get (i) .GeTuUid (). Equals (uuid)) {return list.get (i); }} // 3 Se o usuário não existir, retorne a NULL NULL; }}Classe AddPanel:
cn.hncu.bookstore.user.ui;
Classe AddPanel:
/ * * AddPanel.java * * Criado em __date__, __time__ */pacote cn.hncu.bookstore.user.ui; importar javax.swing.jframe; importar javax.swing.JoPtionPane; Import Cn.hncu.bookstore.common.usertypeenum; cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.business.factory.UserEbiFactory;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.util.FileIoUtil;/** * * @author Chen Haoxiang*/public classe addPanel estende javax.swing.jpanel {private jframe mainframe = null; / ** cria novo formulário addPanel*/ public addPanel (mainframe jframe) {this.mainframe = mainframe; initComponents (); myinitdata (); } private void myinitdata () {for (userTypeenum tipo: userTypeenum.values ()) {combttype.additem (type.getName ()); }} /** Este método é chamado de dentro do construtor para* inicializar o formulário. * Aviso: não modifique este código. O conteúdo deste método é * sempre regenerado pelo editor de formulários. */// gen-begin: initComponents // <editor-fada defaultState = "colapsed" desc = "generated 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 (); combatype = 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 (nulo); jlabel1.setFont (New Java.awt.font ("Microsoft Yahei", 1, 48)); jlabel1.setforeground (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 ("Diálogo", 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 ("Diálogo", 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); combttype.setFont (New Java.awt.font ("Diálogo", 1, 18)); combttype.setforeground (New Java.awt.color (51, 51, 255)); combttype.setModel (new javax.swing.defaultComBoboxModel (new String [] {"Selecione ..."})); add (combatype); Combtype.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 ("diálogo", 1, 24)); btnadd.setforeground (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 (novo java.awt.font ("diálogo", 1, 24)); btnback.setforeground (New Java.awt.color (0, 204, 204)); btnback.settext ("/u8fd4/u56de"); btnback.addactionListener (novo 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 (); } / ***Ouça o botão de volta*@param clique em ouvir o botão de retorno* / private void btnbackActionPerformed (java.awt.event.actionEvent evt) {back (); } private void btnaddactionPerformed (java.awt.event.actionEvent evt) {// 1 Parâmetros de coleta string uuid = tfduUUid.getText (); Nome da string = tfdname.getText (); String pwd = new string (tfdpwd.getpassword ()); String pwd2 = new string (tfdpwd2.getpassword ()); if (! retornar; } int tipo = 0; tente {type = usertypeenum.gettypebyName (combttype.getSelectedItem () .toString ()); } Catch (Exceção e) {JoptionPane.ShowMessagedialog (NULL, "Especifique o tipo de usuário!"); retornar; } // 2 Organize parâmetros UserModel User = new UserModel (); user.setName (nome); user.setpwd (PWD); user.setType (tipo); user.setUuid (UUID); // 3 Ligue para a camada lógica userebi ebi = useReBiFactory.getUserebi (); // 4Direct para diferentes páginas de acordo com o resultado retornado pela chamada if (ebi.create (user)) {back (); } else {JoptionPane.showMessagedialog (null, "Este usuário já existe!"); }} // gen -begin: variáveis // Declaração de variáveis - não modifique o private javax.swing.jbutton btnadd; private javax.swing.jbutton btnback; private javax.swing.jcombobox combttype; 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; // Fim das variáveis Declaração // Gen-End: Variáveis}Classe ListPanel:
cn.hncu.bookstore.user.ui;
Classe ListPanel:
/ * * ListPanel.java * * Criado em __date__, __time__ */pacote cn.hncu.bookstore.user.ui; importar java.util.list; importar javax.swing.jframe; import cn.hncu.bookstore.user.business.ebi.userebi; cn.hncu.bookstore.user.business.factory.userebifactory; importar cn.hncu.bookstore.user.vo.usermodel;/*** Painel de lista de listas de camada de apresentação* @author haoxiang* @version 1.0*/public class listpanel painel javax. / ** cria novo formulário listPanel*/ public listPanel (mainframe jframe) {this.mainframe = mainframe; initComponents (); myinitdata (); } / *** Leia todos os usuários e adicione -os à lista* / private void myinitdata () {userebi user = useReBifactory.getUserebi (); List <UserModel> list = user.getAll (); userlists.setListData (list.toarray ()); } /** Este método é chamado de dentro do construtor para* inicializar o formulário. * Aviso: não modifique este código. O conteúdo deste método é * sempre regenerado pelo editor de formulários. */// gen-begin: initComponents // <editor-Fold defaultState = "colapsed" desc = "generated 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 (nulo); userlists.setModel (new javax.swing.abstractListModel () {string [] strings = {""}; public int getSize () {return strings.length;} public objeto getElementat (int i) {strings de retorno [i];}}); jscrollPane1.setViewPortView (UserLists); add (jscrollPane1); jscrollPane1.setbounds (150, 150, 480, 230); jlabel1.setFont (New Java.awt.font ("Tahoma", 1, 48)); jlabel1.setforeground (New java.awt.color (204, 0, 51)); jlabel1.settext ("usuário"); jlabel1.settext ("usuário"); jlabel1.setforeground (New java.awt.color (204, 0, 51)); jlabel1.settext ("usuário"); Lista "); add (jlabel1); jlabel1.setbounds (270, 30, 260, 80); btntoadd.setFont (new java.awt.font (" diálogo ", 1, 18)); u7220; Btntoadd.addactionListener (New Java.awt.event.actionListener () {public void ActionPerford (Java.awt.event.actionEvent Evt) {Btnto20, 15 anos; </Editor-Fold> // Gen-End: InitComponents Private Void BtNoDdActionPorsed (java.awt.event.actionEvent EVT) {mainframe.setContentPane (new do NotPanel (mainframe)); javax.swing.jbutton btntoadd;Classe UserMermodel:
cn.hncu.bookstore.user.vo;
Classe UserMermodel:
Valor do usuário Módulo de objeto:
pacote cn.hncu.bookstore.user.vo; importar java.io.serializable; importar cn.hncu.bookstore.common.usertypeenum;/** * @author chen haoxiang * @version 1.0 * <br/br/br/burs usada para salvar informações do usuário <br/> 1. Método do setter-getters <br/> * 3. Método de gravação é igual e hashcode --- use o código de identificação exclusivo (UUID) da chave primária <br/> * 4. Método da tostring <br/> * 5. pwd; // senha do usuário public userModel () {}/*** função: obtenha código de identificação exclusivo uuid-user** @return return uuid-user code codificado de identificação*/public string getuuid () {return uuid; } / *** Função: Defina o código de identificação exclusivo do UUID-User* @param uuid-user Código de identificação exclusivo Tipo de string parâmetro* / public void setuuid (string uuid) {this.uuid = uuid; } / *** Função: Obtenha o nome de usuário do usuário* @return --- name-username* / public string getName () {Nome de return; } / *** Função: Defina o nome de usuário do usuário** @param Nome-Username definido pelo usuário, parâmetro de string type* / public void setName (nome da string) {this.name = name; } /** * Function: Get the user's type: * 1― represents admin, and all operations can be performed* 2― represents the person who can operate the book module* 3― represents the person who can operate the purchase module* 4― represents the person who can operate the sales module* 5― represents the person who can operate the inventory module* @return User's type*/ public int getType() { return type; } /** * Function: Set the user's type: * 1 - denoted as admin, all operations can be performed* 2 - denoted as person who can operate book modules* 3 - denoted as person who can operate purchase modules* 4 - denoted as person who can operate sales modules* 5 - denoted as person who can operate inventory modules* @param type--user's type-int type parameter*/ public void setType(int tipo) {this.type = type; } / *** Função: Obtenha a senha do usuário* @return string tipo, senha do usuário* / public String getpwd () {return pwd; } / *** Função: Defina a senha do usuário* @param pwd-string type Parâmetro* / public void setpwd (string pwd) {this.pwd = pwd; } @Override public int hashCode () {final int prime = 31; int resultado = 1; resultado = prime * resultado + ((uuid == null)? 0: uuid.hashcode ()); resultado de retorno; } @Override public boolean equals (object obj) {if (this == obj) retorna true; if (obj == null) retorna false; if (getClass ()! = obj.getclass ()) retornar false; UserMermodel Outro = (Usermodel) OBJ; if (uuid == null) {if (other.uuid! = null) retorna false; } else if (! uuid.equals (outros.uuid)) retorna false; retornar true; } @Override public string tostring () {return uuid + "," + name + "," + userTypeenum.getNameByType (type); }}Classe UserQueryModel:
cn.hncu.bookstore.user.vo;
Classe UserQueryModel:
Embora não haja código, ele não pode ser ignorado! É isso que você precisa ao procurar usuários.
Eu escrevi o motivo da série.
pacote cn.hncu.bookstore.user.vo;/** * * @author chen haoxiang * * @version 1.0 */classe pública userQuerymodel estende UserModel {}Classe Fileioutil:
cn.hncu.bookstore.util;
Classe Fileioutil:
pacote cn.hncu.bookstore.util; importar java.io.file; importar java.io.fileInputStream; importar java.io.fileNotFoundException; importar java.io.fileOutStream; importação java.io.ioxception; importação.ObjactinutStream; importStream; importação; java.util.ArrayList; importar java.util.list; importar javax.swing.JOptionPane;/*** Dados públicos do usuário Leia e escreva classe* @author chen haoxiang** @version 1.0*/public class Datailtil {public Fileioutil () {}/** ** ** ** ** lida com todos os dados do FileiTiLAT {publicIoutile () {}/** ** ** ** ** ***********************************************, a tabela de dados) * @return registros de todas as tabelas! */@Suppresswarnings ("desmarcado") // Pressione aviso public static <e> list <e> readFile (string filename) {list <e> list = new ArrayList <E> (); arquivo final arquivo = novo arquivo (nome do arquivo); ObjectInputStream in = null; if (! file.exists ()) {//JOptionPane.showMessagedialog(Null, "A tabela de dados não existe!"); lista de retorno; } tente {in = new ObjectInputStream (new FileInputStream (nome do arquivo)); tente {list = (list <e>) in.readObject (); } catch (classNotFoundException e) {e.printStackTrace (); }} catch (filenotfoundException e) {e.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); } finalmente {if (in! = null) {tente {in.close (); } catch (ioexception e) {lança nova runtimeException ("Falha de fechamento do banco de dados"); }}} Lista de retorno; } / ** * Escreva uma coleção de listas no arquivo de arquivo de dados * * * @param List (a coleção de dados que precisa ser armazenada) * @param filename (o nome do arquivo em qual arquivo está escrito) * / public static <e> void write2file (list <e> list, string filename) {objectutputstream Out = null; tente {out = new ObjectOutputStream (new FileOutputStream (nome do arquivo)); out.WriteObject (List); } catch (filenotfoundException e) {e.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); } finalmente {if (out! = null) {try {out.close (); } catch (ioexception e) {lança nova runtimeException ("Database Close falhou!"); }}}}}}}}} Classe de livraria: (incluindo o método principal)
cn.hncu.bookstore;
Classe da Livraria:
O principal método do módulo de usuário está nesta classe:
/ * * Bookstore.java * * criado em __date__, __time__ */package cn.hncu.bookstore; importar cn.hncu.bookstore.user.ui.listpanel;/** * * * @author chen haoxiang */public bookstore estende javax.swing.jflam. initComponents (); this.setContentPane (new ListPanel (this)); this.setResizable (false); // this.setDefaultCloseoperation (exit_on_close); } /** Este método é chamado de dentro do construtor para* inicializar o formulário. * Aviso: não modifique este código. O conteúdo deste método é * sempre regenerado pelo editor de formulários. */// gen-begin: initComponents // <editor-fold defaultState = "colapsed" desc = "generated 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 (); deleteemenuitem = new javax.swing.jmenuitem (); helpmenu = new javax.swing.jmenuitem (); contentsmenuitem = new javax.swing.jmenuitem (); aboutmenuitem = new javax.swing.jmenuitem (); setDefaultCloseoperation (javax.swing.windowconstants.exit_on_close); setminimumsize (New Java.awt.dimension (800, 600)); filemenu.settext ("arquivo"); OpenMenuitem.Settext ("Open"); filemenu.add (OpenMenuitem); saveMenuitem.settext ("salvar"); filemenu.add (savemenuitem); saveasmenuitem.settext ("Salvar como ..."); filemenu.add (saveasmenuitem); exitmenuitem.settext ("exit"); exitmenuitem.addactionListener (New java.awt.event.actionListener () {public void actionPerformed (java.awt.event.actionEvent evt) {exitmenuitemactionPorformed (evt);}}); filemenu.add (exitmenuitem); menubar.add (filemenu); editmenu.settext ("edit"); cutmenuitem.settext ("corte"); editmenu.add (Cutmenuitem); copymenuitem.settext ("cópia"); editmenu.add (copymenuitem); pastemenuitem.settext ("pasta"); editmenu.add (pastemenuitem); deleteemenuitem.settext ("delete"); editmenu.add (DeleteMenuitem); Menubar.add (editmenu); helpmenu.settext ("ajuda"); contentsmenuitem.settext ("conteúdo"); helpmenu.add (contentsmenuitem); SobreMenuitem.Settext ("Sobre"); helpmenu.add (Aboutmenuitem); 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, curto.max_value)); pacote(); } // </editor-fold> // gen-end: initComponents private void exitmenuitemactionPorformed (java.awt.event.actionEvent evt) {// gen-first: event_exitMenuitemactionPormed System.exit (0); } // gen-last: event_exitmenuitemactionPorformed/** * @param args os argumentos da linha de comando */public static void main (string args []) {java.awt.eventQueue.invokelater (new runnable () {public void run () {new BookStore (). } // gen -begin: variáveis // Declaração de variáveis - não modifique o private javax.swing.jmenuitem aboutmenuitem; 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; // Fim das variáveis Declaração // Gen-End: Variáveis} Isso é tudo para hoje, para ser continuado. . .
Há um pequeno bug na adição atual, que é que, ao adicionar um usuário, você não insere nada.
Selecione apenas o tipo de usuário e você também pode criá -lo! Vou consertar da próxima vez.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.