Bookstore Management System의 Java-Single-Player 버전 (실습 디자인 모듈 및 Ideas_series 1) : //www.vevb.com/article/91004.htm
소개하다
팁 : 위의 지점에는 필요한 클래스를 빠르게 찾을 수있는 디렉토리가 있습니다.
오늘날 코드를보다 완벽하게 만들기 위해 이전 코드에 대한 작은 수정이 이루어졌습니다.
사용자의 고유 식별 코드 UUID는 향후 프로그램에서 내부적으로 생성되도록 수정됩니다.
현재 UUID는 여전히 사용자가 설정합니다.
오늘이 프로그램의 경우 사용자 인터페이스의 프레젠테이션 계층의 일부를 추가하고 공개 클래스 열거를 추가했습니다.
아래는 내가 쓴 프로그램의 모든 코드를 게시 한 것입니다.이 프로그램 작성을 점차적으로 마무리하겠습니다. (구현 해야하는 기능은 일련의 서점 관리 시스템에서 찾을 수 있습니다.이 시리즈의 기사를 분류하여 모든 사람이 찾을 수 있습니다)
이 일련의 블로그는 결코 중단되지 않습니다.
코드는 이제 계층화되었습니다.
프로그램이 실행중인 후 사진 :
디렉토리의 맨 아래로 순서대로 코드를 게시했습니다.
주목하십시오! 이 코드 순서는 코드를 작성하는 순서가 아닙니다!
내 글을 참조하려면 게시 한 코드의 순서를 따르지 마십시오.
먼저 공개 수업과 도구 수업을 작성해야합니다.
다시 : 데이터 계층 클래스 -> 논리적 계층 클래스 -> 프리젠 테이션 레이어 클래스
프로그램이 실행중인 후 일부 사진 :
usertypeenum 클래스 :
cn.hncu.bookstore.common;
usertypeenum 클래스 :
패키지 cn.hncu.bookstore.common;/*** 기능 : 사용자 유형의 열거! <br/> * 공개 모듈에 정의되었습니다. <br/> * 변수 : <br/> * admin (1, "슈퍼 관리자"), <br/> * Book (2, "Librarian"), <br/> * in (3, "구매 관리자"), <br/> * out (4, "영업 관리자"), <br/> * Stock (5, "Inventory Administrator"); {admin (1, "슈퍼 관리자"), Book (2, "Librarian"), (3, "구매 관리자"), Out (4, "Sales Administrator"), Stock (5, "Inventory Administrator"); 개인 최종 int 유형; 개인 최종 문자열 이름; / *** 열거 변수 이름* @Param 유형 --- 열거 변수에 해당하는 정수 번호 @param 이름 --- 열거 변수에 해당하는 문자열 유형 이름/ private userTypeenum (int type, string name) {this.type = type; this.name = 이름; } / *** 현재 열거 변수의 수를 얻습니다. } / *** 현재 열거 변수의 중국어 이름을 얻으십시오. } /*** int 번호* @param 유형에 따라 숫자에 해당하는 열거 변수의 중국어 이름을 얻습니다.* @return을 전달하는 데 필요한 int 매개 변수 --- 해당 숫자에 해당하는 열거 변수가있는 경우, 열거 변수의 중국어 이름이 반환됩니다. * <br/>-그러한 숫자에 해당하는 열거 변수가 없으면 예외 메시지가 발생합니다. */ public static string getNameByType (int type) {for (usertypeenum usertype : usertypeenum.values ()) {if (usertype.gettype () == type) {return userType.getName (); }} 새로운 불법 불법 행위 exception 던지기 ( "열거에는 해당 사용자 유형이 없습니다 :"+type); }/** * 열거 변수의 중국어 이름에 따라 이름에 해당하는 열거 변수의 int 유형을 가져옵니다. @param 이름 --- * @return에 전달 해야하는 문자열 유형 이름 --- 그러한 이름에 해당하는 열거 변수가있는 경우,이 열거 변수에 해당하는 유형-INT * <br/> --------------------- static inttypebyName (string name) {for (userTypeenum userType : userTypeenum.values ()) {if (userType.getName (). equals (name)) {return userType.getType (); }} 새로운 불법 불법 행정 exception 던지기 ( "열거에는 해당 사용자 유형이 없습니다 :"+name); }}userebi 인터페이스 :
cn.hncu.bookstore.user.business.ebi;
userebi 인터페이스 :
패키지 cn.hncu.bookstore.user.business.ebi; import java.util.list; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userquerymodel;/** * hoogic layer의 인터페이스 * @auther chex * @verseion */ @verseor chx * @verseor chex * @voversion */public interface. { / *** 함수 : 사용자 만들기** @param usermodel --- 생성 할 사용자 데이터* @return --- 진정한 수단 생성 성공, 거짓 수단 생성 실패* / public boolean create (usermodel user); / ** * 기능 : 사용자의 고유 식별 코드 UUID * * @param uuid --- 사용자의 고유 식별 코드를 기반으로 사용자를 삭제합니다. 각 사용자의 고유 한 식별 코드는 동일하지 않음 * @return --- true는 삭제가 성공했음을 의미합니다. 거짓은 삭제 실패 */ public boolean delete (String UUID); / *** 기능 : 사용자의 데이터 정보 수정** @Param 사용자 --- 수정 해야하는 사용자 데이터 매개 변수 이름* @return return true- 수정이 성공했음을 나타냅니다. 거짓은 수정이 실패했음을 나타냅니다*/ public boolean update (usermodel user); / *** 기능 : 모든 사용자 데이터 가져 오기** @return --- 사용자의 데이터*/ 공개 목록 <Sermodel> getall (); /** * 기능 : 특정 검색 조건에 따라 검색 * <br/> * 검색 조건을 충족하는 사용자 데이터를 반환합니다. ** @param uqm --- 캡슐화 된 검색 조건* @return ---- 검색 조건을 충족하는 사용자 데이터 세트*/ 공개 목록 <Sermodel> getByCondition (userQueryModel uqm); / *** 기능 : 특정 사용자 데이터 가져 오기** @param uuid --- 사용자 고유 식별 코드* @return ---이 고유 식별 코드에 따라 찾은 사용자 데이터를 반환*/ public usermodel getsingle (string uuid);}Userebo 클래스 :
cn.hncu.bookstore.user.business.ebo;
Userebo 클래스 :
패키지 cn.hncu.bookstore.user.business.ebo; import java.util.list; import cn.hncu.bookstore.user.business.ebi.userebi; import cn.hncu.bookstore.user.dao.dao.userdao; 가져 오기 cn.hncu.bookstore.user.dao.factory.userdaofactory; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userquerymodel; public userebo private userbi {userdao (userdaofactory); @override public boolean create (usermodel user) {return dao.create (user); } @override public boolean delete (string uuid) {return dao.delete (uuid); } @override public boolean update (usermodel user) {return dao.update (user); } @override public list <Scermodel> getAll () {return dao.getall (); } @override public list <Scermodel> getByCondition (userQueryModel uqm) {// todo 자동 생성 메소드 스터브 리턴 NULL; } @override public usermodel getsingle (string uuid) {return dao.getsingle (uuid); }}userebifactory 클래스 :
cn.hncu.bookstore.user.business.achiply;
userebifactory 클래스 :
패키지 cn.hncu.bookstore.user.business.business.factory; import cn.hncu.bookstore.user.business.ebi.userebi; import cn.hncu.bookstore.user.business.ebo.userebo; public class aserebifactory {public static userebi getUsebi () {return new userebo (); }}userdao 인터페이스 :
cn.hncu.bookstore.user.dao.dao;
userdao 인터페이스 :
패키지 cn.hncu.bookstore.user.dao.dao; import java.util.list; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userQueryModel;/** * * @author Chen Haoxang * * @verion 1.0의 데이터의 데이터에 대한 haoxer.vo.vo.vo.bo. 인터페이스 userDao { / *** 함수 : 사용자 생성** @param usermodel --- 생성 할 사용자 데이터* @return- 트루는 성공, 거짓 수단 생성 실패* / public boolean create (usermodel user); / ** * 기능 : 사용자의 고유 식별 코드 UUID * * @param uuid --- 사용자의 고유 식별 코드를 기반으로 사용자를 삭제합니다. 각 사용자의 고유 한 식별 코드는 동일하지 않음 * @return --- true는 삭제가 성공했음을 의미합니다. 거짓은 삭제 실패 */ public boolean delete (String UUID); / *** 기능 : 사용자의 데이터 정보 수정** @Param 사용자 --- 수정 해야하는 사용자 데이터 매개 변수 이름* @return return true- 수정이 성공적이라는 것을 의미합니다. 거짓을 반환한다는 것을 의미합니다. / *** 기능 : 모든 사용자 데이터 가져 오기** @return --- 사용자의 데이터*/ 공개 목록 <Sermodel> getall (); /** * 기능 : 특정 검색 조건에 따라 검색 * <br/> * 검색 조건을 충족하는 사용자 데이터를 반환합니다. ** @param uqm --- 캡슐화 된 검색 조건* @return ---- 검색 조건을 충족하는 사용자 데이터 세트*/ 공개 목록 <Sermodel> getByCondition (userQueryModel uqm); / *** 기능 : 특정 사용자 데이터 가져 오기** @param uuid --- 사용자 고유 식별 코드* @return ---이 고유 식별 코드에 따라 찾은 사용자 데이터를 반환*/ public usermodel getsingle (string uuid);}userDaofactory 클래스 :
cn.hncu.bookstore.user.dao.factory;
userDaofactory 클래스 :
패키지 cn.hncu.bookstore.user.dao.factory; import cn.hncu.bookstore.user.dao.dao.userdao; import cn.hncu.bookstore.user.dao.impl.userdaoserimpl;/** * factory method <br/> @author chen haverng * @haiangeng * @haNgiOng * @OvEng * @OvEnge * @OverDao.userdao.userdao; */public class userDaofactory {public static userdao getUserDao () {return new userDaoserImpl (); }}userdaoserimpl 클래스 :
cn.hncu.bookstore.user.dao.impl;
userdaoserimpl 클래스 :
패키지 cn.hncu.bookstore.user.dao.impl; import java.util.arraylist; import java.util.list; import cn.hncu.bookstore.user.dao.dao.userdao; import cn.hncu.bookstore.user.vo.usermodel; 수입 cn.hncu.bookstore.user.vo.usquerymodel; import cn.hncu.bookstore.util.fileioutil;/** * <br/> * 사용자 데이터 처리를위한 특정 구현 클래스 --- userdao interface * * @author chen haoxiang * * @version 1.0 */public classe user userdompl strest user userdempl strest interdemple instation interfice interface를 구현합니다. file_name = "user.txt"; @override public boolean create (usermodel user) {// 1 첫 번째 deserialize (읽기) 기존 데이터 목록 <Sermodel> list = fileioutil.readformFile (file_name); // 2 사용자가 이미 존재하는지 여부를 결정한 다음 (usermodel usermodel : list) {// 두 사용자의 uuid가 동일하다면 사용자는 동일합니다. fileioutil.write2file (list, file_name); true; // 성공적으로 생성, return true} @override public boolean delete (string uuid) {// 1 첫 번째 deserialize (읽기) 기존 데이터 목록 <asermodel> list = fileioutil.readformfile (file_name); // 2 사용자가 이미 존재하는지 여부를 결정한 다음 (int i = 0; i <list.size (); i ++) {// if (list.get (i) .getuuid (). equals (uuid)) {// list.remove (i); // fileioutil.write2file (list, file_name); // true를 반환합니다. //} //} for (usermodel usermodel : list) {// 2 사용자의 uuid가 동일하면 사용자는 (usermodel.getuuid (). equals (uuid)) {list.remove (usermodel); fileioutil.write2file (list, file_name); // 성공적으로 삭제하고 true return true를 반환합니다. }} // 3 사용자가 존재하지 않습니다. // 삭제 실패, false return false를 반환합니다. } @override public boolean update (usermodel user) {// 1 deserialize (읽기) 기존 데이터 목록 <SURMODEL> list = fileioutil.readformFile (file_name); // 2 사용자가 이미 존재하는지 여부를 결정한 다음 (int i = 0; i <list.size (); i ++) {// uuid를 변경할 수 없습니다. UUID를 통해 사용자 데이터를 찾고 (list.get (i) .getuuid (). equals (user.getUuid ()) {// 사용자 목록으로 수정 (i, user); fileioutil.write2file (list, file_name); // 사용자를 찾고 true return true를 반환합니다. }} // 3 사용자가 존재하지 않으면 수정이 False를 반환하지 못합니다. } @override public list <Scermodel> getAll () {return fileioutil.readformFile (file_name); } @override public list <Scermodel> getByCondition (userQueryModel uqm) {// todo 자동 생성 메소드 스터브 리턴 NULL; } @override public usermodel getsingle (string uuid) {// 1 deserialize (읽기) 기존 데이터 첫 번째 목록 <asermodel> list = fileioutil.readformfile (file_name); // 2 사용자가 이미 존재하는지 여부를 결정하고 존재하는 경우 (int i = 0; i <list.size (); i ++) {if (list.get (i) .getuuid (). equals (uuid)) {return list.get (i); }} // 3 사용자가 존재하지 않으면 NULL RETURN NULL을 반환합니다. }}AddPanel 클래스 :
cn.hncu.bookstore.user.ui;
AddPanel 클래스 :
/ * * addPanel.java * * __date__, __date__, __time__ */패키지 cn.hncu.bookstore.user.ui; import javax.swing.jframe; import javax.swing.joptionpane; import cn.hncu.bookstore.common.usertypeenum; cn.hncu.bookstore.user.business.ebi.userebi; import cn.hncu.bookstore.user.business.business.userebifactory; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.util.fileioutil;/* @autherang 클래스 addpanel은 javax.swing.jpanel을 확장합니다. {private jframe mainframe = null; / ** 새 양식 AddPanel*/ public addpanel (jframe mainframe) {this.mainframe = mainframe; initcomponents (); myinitdata (); } private void myInitData () {for (userTypeenum 유형 : userTypeenum.values ()) {combtype.additem (type.getName ()); }} /**이 메소드는 생성자 내에서 양식을 초기화하기 위해 호출됩니다. * 경고 :이 코드를 수정하지 마십시오. 이 방법의 내용은 * 항상 편집기에 의해 재생됩니다. */// gen-begin : initcomponents // <editor-fold defaultstate = "붕괴 된"desc = "생성 코드"> 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 (); setMinIumbsize (new java.awt.dimension (800, 600)); setLayout (null); 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"); 추가 (jlabel1); Jlabel1.SetBounds (270, 30, 230, 80); JLABEL2.SETFONT (New Java.awt.Font ( "Microsoft Yahei", 0, 18)); jlabel2.settext ( "/u7528/u6237/u7c7b/u578b :"); 추가 (jlabel2); Jlabel2.setBounds (40, 310, 90, 30); tfdname.setfont (new java.awt.font ( "대화", 1, 18)); tfdname.setAutoScrolls (false); 추가 (tfdname); tfdname.setBounds (420, 160, 120, 30); jlabel3.setfont (new java.awt.font ( "Microsoft Yahei", 0, 18)); jlabel3.settext ( "uuid :"); 추가 (jlabel3); jlabel3.setbounds (70, 160, 50, 30); tfduuid.setfont (new java.awt.font ( "대화", 0, 11)); 추가 (tfduuid); tfduuid.setbounds (140, 160, 110, 30); jlabel4.setfont (new java.awt.font ( "Microsoft Yahei", 0, 18)); jlabel4.settext ( "/u59d3/u540d :"); 추가 (jlabel4); jlabel4.setbounds (360, 160, 50, 30); 추가 (tfdpwd2); tfdpwd2.setbounds (420, 240, 170, 30); Jlabel5.setfont (New Java.awt.Font ( "Microsoft Yahei", 0, 18)); jlabel5.settext ( "/u5bc6/u7801 :"); 추가 (jlabel5); Jlabel5. 세트 바운드 (70, 240, 50, 30); jlabel6.setfont (new java.awt.font ( "Microsoft Yahei", 0, 18)); jlabel6.settext ( "/u786e/u8ba4/u5bc6/u7801 :"); 추가 (jlabel6); Jlabel6.SetBounds (330, 240, 90, 30); combtype.setfont (new java.awt.font ( "대화", 1, 18)); combtype.setforeground (new java.awt.color (51, 51, 255)); combtype.setmodel (new javax.swing.defaultcomboboxModel (new String [] { "Please Select ..."})); 추가 (combtype); combtype.setbounds (140, 310, 160, 30); tfdpwd.setfont (new java.awt.font ( "安一", 1, 18)); 추가 (tfdpwd); tfdpwd.setbounds (140, 240, 160, 30); btnadd.setfont (new java.awt.font ( "대화", 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);}}); 추가 (btnadd); btnadd.setbounds (140, 430, 120, 60); btnback.setfont (new java.awt.font ( "대화", 1, 24)); btnback.setforeground (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);}}); 추가 (btnback); btnback.setbounds (470, 430, 120, 60); } // </editor-fold> // gen-end : initComponents private void back () {mainframe.setContentPane (new ListPanel (mainframe)); mainframe.validate (); } / ***뒤로 청취*@param 리턴 버튼 듣기* / private void btnbackactionPerformed (java.awt.event.actionEvent evt) {back (); } private void btnadDactionPerformed (java.awt.event.actionEvent evt) {// 1 매개 변수 수집 문자열 uuid = tfduuid.getText (); 문자열 이름 = tfdname.getText (); 문자열 pwd = new String (tfdpwd.getPassword ()); 문자열 pwd2 = new String (tfdpwd2.getPassword ()); if (! pwd.equals (pwd2)) {joptionpane.showmessagedialog (null, "비밀번호 입력은 두 번 일치하지 않으면 다시 입력하십시오!"); 반품; } int 유형 = 0; {type = usertypeenum.getTypebyName (combtype.getSelectedItem () .toString ()); } catch (예외 e) {joptionpane.showmessagedialog (null, "사용자 유형을 지정하십시오!"); 반품; } // 2 매개 변수 구성 usermodel user = new usermodel (); user.setName (이름); user.setpwd (pwd); user.settype (type); user.setuuid (uuid); // 3 로직 계층을 호출합니다. aserebi ebi = aserebictory.getuserebi (); // (ebi.create (user)) {back (); } else {joptionpane.showmessagedialog (null, "이 사용자는 이미 존재합니다!"); }} // gen -begin : 변수 // 변수 선언 - 개인 javax.swing.jbutton btnadd를 수정하지 마십시오. private javax.swing.jbutton btnback; private javax.swing.jcombobox combtype; 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; // 변수 종료 선언 // gen-end : 변수}ListPanel 클래스 :
cn.hncu.bookstore.user.ui;
ListPanel 클래스 :
/ * * listpanel.java * * __date__, __date__, __time__ */package cn.hncu.bookstore.user.ui; import java.util.list; import javax.swing.jframe; import cn.hncu.bookstore.business.ebi.userebi; cn.hncu.bookstore.user.business.business.userebifactory; import cn.hncu.bookstore.user.vo.usermodel;/*** 프리젠 테이션 계층 -user 목록 패널** @Author Chen Haoxiang* @version 1.0*/public class listpanel은 javax.swing.jpanel {privel javax.swing.jpanel; / ** 새 양식 생성 ListPanel*/ public listpanel (jframe mainframe) {this.mainframe = mainframe; initcomponents (); myinitdata (); } / *** 모든 사용자를 읽고 목록에 추가* / private void myinitdata () {userebi user = aserebifactory.getuserebi (); 목록 <asermodel> list = user.getall (); userLists.setListData (list.toArray ()); } /**이 메소드는 생성자 내에서 양식을 초기화하기 위해 호출됩니다. * 경고 :이 코드를 수정하지 마십시오. 이 방법의 내용은 * 항상 편집기에 의해 재생됩니다. */// gen-begin : initcomponents // <editor-fold defaultstate = "붕괴 된"desc = "생성 코드"> private void initcomponents () {jscrollpane1 = new javax.swing.jscrollpane (); userLists = new javax.swing.jlist (); jlabel1 = new javax.swing.jlabel (); btntoadd = new javax.swing.jbutton (); setMinIumbsize (new java.awt.dimension (800, 600)); setLayout (null); userLists.setModel (new javax.swing.abstractListModel () {String [] strings = { ""}; public int getsize () {return strings.length;} public object getElementat (int i) {return strings [i];}}); jscrollpane1.setViewPortView (userLists); 추가 (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 ( "사용자"); jlabel1.settext ( "사용자"); jlabel1.setforeground (new java.awt.color (204, 0, 51)); jlabel1.settext ( "사용자"); List "); add (jlabel1); jlabel1.setbounds (270, 30, 260, 80); btntoadd.setfont (new java.awt.font ("dialog ", 1, 18)); btntoadd.settext ("/u6dfb/u52a0/u7528/u6237 "); btntoadd.addactionListener (New Java.awt.event.actionListener () {java.awt.event.ActionEvent evt (evt);}}; </edital-fold> // initcomponents private void btntoaddactionperformed (java.awt.event.actionevent evt) {mainframe.setContentPane (mainframe); javax.jbutton btntoadd;usermodel 클래스 :
cn.hncu.bookstore.user.vo;
usermodel 클래스 :
사용자 값 객체 모듈 :
패키지 cn.hncu.bookstore.user.vo; import java.io.serializable; import cn.hncu.bookstore.common.usertypeenum;/** * @uthor chen haoxiang * @version 1.0 * * <br/> * value 객체 <br/> 1. serializable <br <bric <bricate and and fortince setter-getters 메소드 <br/> * 3. equals and hashcode method --- 기본 키 (UUID) 고유 식별 코드 <br/> * 4. Tostring Method <br/> * 5. 빈 매개 변수 구성 메소드 <br/> */public class usermodel implements Serializable {private string uuid; // 사용자 유형 개인 문자열 이름; // 사용자 유형 유형; // 사용자 이름; // pwd; // 사용자 비밀번호 public usermodel () {}/*** 함수 : UUID-USER 고유 식별 코드를 얻습니다.* @return uuid-user 고유 한 식별 코드*/public string getuuid () {return uuid; } / *** 함수 : UUID 사용자 고유 식별 코드 설정* @param uuid-user 고유 식별 코드 스트링 유형 매개 변수* / public void setuuid (String Uuid) {this.uuid = uuid; } / *** 함수 : 사용자의 사용자 이름* @return --- name-username* / public string getName () {return name; } / *** 함수 : 사용자의 사용자 이름을 설정** @param name- 사용자가 설정 한 문자열 유형 매개 변수* / public void setName (문자열 이름) {this.name = name; } / *** 기능 : 사용자의 유형을 가져옵니다.* 1 - 관리자를 나타내고 모든 작업이 수행 될 수 있습니다* 2 - 책 모듈을 운영 할 수있는 사람을 나타냅니다* 3 - 구매 모듈을 운영 할 수있는 사람을 나타냅니다* 4 - 영업 모듈을 운영 할 수있는 사람을 나타냅니다* 5는 인벤토리 모듈을 운영 할 수있는 사람을 나타냅니다. } / *** 기능 : 사용자의 유형 설정 :* 1- 관리자로 표시되면 모든 작업이 수행 될 수 있습니다.* 2- 책 모듈을 운영 할 수있는 사람으로 표시됩니다.* 3- 구매 모듈을 운영 할 수있는 사람으로 표시되어* 4- 영업 모듈을 운영 할 수있는 사람으로 표시되는 사람으로 표시됩니다. settype (int type) {this.type = type; } / *** 기능 : 사용자의 암호를 가져옵니다* @return 문자열 유형, 사용자의 비밀번호* / public string getPwd () {return pwd; } / *** 함수 : 사용자의 비밀번호를 설정* @param pwd-스트링 유형 매개 변수* / 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 ()); 반환 결과; } @override public boolean equals (Object obj) {if (this == obj) return true; if (obj == null) false를 반환합니다. if (getClass ()! = obj.getClass ()) false를 반환합니다. Usermodel Other = (usermodel) obj; if (uuid == null) {if (Other.uuid! = null) false를 반환합니다. } else if (! uuid.equals (기타 .uuid)) false를 반환합니다. 진실을 반환하십시오. } @override public String toString () {return uuid + "," + name + "," + userTypeenum.getNameByType (type); }}userQueryModel 클래스 :
cn.hncu.bookstore.user.vo;
userQueryModel 클래스 :
코드는 없지만 무시할 수 없습니다! 이것은 사용자를 찾을 때 필요한 것입니다.
나는 시리즈에 이유를 썼다.
패키지 cn.hncu.bookstore.user.vo;/** * * * @author Chen Haoxiang * * @version 1.0 */public class userQueryModel 확장 usermodel {}fileioutil 클래스 :
cn.hncu.bookstore.util;
fileioutil 클래스 :
패키지 cn.hncu.bookstore.util; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileoutputStream; import java.io.ioexception; import java.io.objepinputstream; import java.io.ova.io.obofoutputstream; java.util.arraylist; import java.util.list; import javax.swing.joptionpane;/*** 사용자 공개 데이터 읽기 및 쓰기 클래스* @author chen haoxiang** @version 1.0*/public fileioutil {public fileioutil ()}/*** 데이터를 읽습니다. 데이터 테이블) * 모든 테이블의 @return 레코드! */@suppresswarnings ( "Checked") // 경고 공개 정적 <e> 목록 <e> readformfile (String filename) {list <e> list = new arraylist <e> (); 최종 파일 파일 = 새 파일 (filename); ObjectInputStream in = null; if (! file.exists ()) {//joptionpane.showmessagedialog(null, "데이터 테이블이 존재하지 않습니다!"); 반환 목록; } try {in = new ObjectInputStream (new FileInputStream (filename)); {list = (list <e>) in.readobject (); } catch (classNotFoundException e) {e.printstacktrace (); }} catch (filenotfoundException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); } 마침내 {if (in! = null) {try {in.close (); } catch (ioException e) {Throw new runtimeexception ( "데이터베이스 닫기 실패"); }}} 리턴 목록; } / ** * 데이터 파일 파일 파일 이름에 목록 컬렉션을 작성하십시오 * * @param 목록 (저장 해야하는 데이터 수집) * @param filename (파일이 작성된 파일 이름) * / public static <e> void write2file (list <e> 목록, 문자열 파일 이름) {objectOutputStream out = null; try {out = new ObjectOutputStream (new FileOutputStream (filename)); out.writeObject (list); } catch (filenotfoundException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); } 마침내 {if (out! = null) {try {out.close (); } catch (ioexception e) {새로운 runtimeexception 던지기 ( "데이터베이스 닫기 실패!"); }}}}}}}}}} 서점 클래스 : (주요 방법 포함)
Cn.hncu.BookStore;
서점 수업 :
사용자 모듈의 주요 방법은이 클래스에 있습니다.
/ * * bookstore.java * * __date__, __time__, __time__ */패키지 cn.hncu.bookstore; import cn.hncu.bookstore.user.user.ui.listpanel;/** * * @author Chen Haoxiang */공개 클래스 서점 확장 javax.swing.swing. initcomponents (); this.setContentPane (새 ListPanel (this)); this.setResizable (false); // this.setDefaultCloseOperation (exit_on_close); } /**이 메소드는 생성자 내에서 양식을 초기화하기 위해 호출됩니다. * 경고 :이 코드를 수정하지 마십시오. 이 방법의 내용은 * 항상 편집기에 의해 재생됩니다. */// gen-begin : initComponents // <editor-fold defaultstate = "붕괴 된"desc = "생성 코드"> 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 (); contentmenuitem = new javax.swing.jmenuitem (); 정보 menuitem = new javax.swing.jmenuitem (); setDefaultCloseOperation (javax.swing.windowConstants.exit_on_close); setMinIumbsize (new java.awt.dimension (800, 600)); filemenu.settext ( "파일"); OpenMenuitem.settext ( "Open"); filemenu.add (OpenMenuitem); Savemenuitem.settext ( "저장"); filemenu.add (Sevemenuitem); Saveasmenuitem.settext ( "저장 ..."); filemenu.add (Saveasmenuitem); exitmenuitem.settext ( "종료"); exitmenuitem.addactionListener (new java.awt.event.actionListener () {public void actionPerformed (java.awt.event.actionEvent evt) {exitMenuitemActionPerformed (evt);}}); filemenu.add (exitmenuitem); menubar.add (filemenu); editmenu.settext ( "edit"); cutmenuitem.settext ( "컷"); editmenu.add (cutmenuitem); copymenuitem.settext ( "copy"); editmenu.add (copymenuitem); pastemenuitem.settext ( "페이스트"); editmenu.add (pastemenuitem); deletemenuitem.settext ( "delete"); editmenu.add (deletemenuitem); menubar.add (editmenu); helpmenu.settext ( "도움말"); contentmenuitem.settext ( "내용"); helpmenu.add (contentmenuitem); 정보 menuitem.settext ( "about"); helpmenu.add (AboutMenuitem); menubar.add (helpmenu); setjmenubar (menubar); javax.swing.grouplayout 레이아웃 = new javax.swing.grouplayout (getContentPane ()); getContentPane (). SetLayout (레이아웃); 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)); 팩(); } // </editor-fold> // gen-end : initcomponents private void exitmenuitemactionPerformed (java.awt.event.actionevent evt) {// gen-first : event_exitmenuitemactionperformed system.exit (0); } // gen-last : event_exitMenuitemActionPerformed/** * @param args 명령 줄 인수 */public static void main (string args []) {java.awt.eventqueue.invokelater () {public void run () {new bookstore ().}); } // gen -begin : 변수 // 변수 선언 - 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 sevemenuitem; // 변수 종료 선언 // gen-end : 변수} 그게 오늘은 계속되어 있습니다. . .
현재 추가에는 작은 버그가 있습니다. 이는 사용자를 추가 할 때 아무것도 입력하지 않습니다.
사용자 유형 만 선택하면 생성 할 수도 있습니다! 다음에 고칠 게요.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.