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、 "super administrator")、<br/> * book(2、 "brairan")、<br/> * in(3、 "購入管理者")、<br/> * out(4、 "販売管理者")、<br/> * stock(5、 "inventory管理者"); admin(1、 "Super Administrator")、Book(2、 "Librarian")、In(3、 "Purchase Administrator")、out(4、 "販売管理者")、stock(5、 "inventory Administrator");プライベートファイナルINTタイプ。プライベート最終文字列名; / ***列挙変数名の初期化* @paramタイプ---列挙変数に対応する整数番号@param name ---列挙変数に対応する文字列タイプ名*/ private usertypeenum(int型、文字列名){this.type = type; this.name = name; } / ***現在の列挙変数の数を取得* @return ---タイプ番号* / public int getType(){return type; } / ***現在の列挙変数の中国語名を取得* @return ---名前 - 中国名* / public String getName(){return name; } /*** int番号に基づいて数値に対応する列挙変数の中国名を取得* @paramタイプ---渡される必要があるintパラメーター* @return ---そのような数に対応する列挙変数がある場合、列挙変数の中国名が返されます。 * <br/> - そのような数に対応する列挙変数がない場合、例外メッセージがスローされます。 */ public static string getnameByType(int型){for(usertypeenum usertype:usertypeenum.values()){if(usertype.getType()==型){return usertype.getname(); }}新しいIllegalArgumentException( "列挙に対応するユーザータイプはありません:"+type); }/** *列挙変数の中国名に基づいた名前に対応する列挙変数のintタイプを取得 * @param名---文字列タイプ名 * @return ---そのような名前に対応する列挙変数がある場合、この列挙変数に対応する型numerationに対応するタイプintを返します - <br/ static int getTypebyName(string name){for(usertypeenum usertype:usertypeenum.values()){if(usertype.getname()。equals(name)){return usertype.getType(); }}新しいIllegalargumentException( "列挙に対応するユーザータイプはありません:"+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; { / ***関数:ユーザーの作成** @param usermodel ---作成されるユーザーデータ* @return --- trueは作成の成功を意味します。 / ** *関数:ユーザーの一意の識別コードuuid * * @param uuid ---ユーザーの一意の識別コードに基づいてユーザーを削除します。各ユーザーは同じではありません * @return --- trueは削除が成功することを意味します。 / ***関数:ユーザーのデータ情報を変更** @paramユーザー---変更する必要があるユーザーデータパラメーター名* @return返品true-変更が成功したことを示します。 / ***関数:すべてのユーザーデータを取得** @return --- Usermodelコレクション、つまりユーザーのデータ*/ publicリスト<Usermodel> getAll(); /** *関数:特定の検索条件に応じて検索 * <br/> *検索条件を満たすユーザーデータを返します。 ** @param uqm ---カプセル化検索条件* @return ----検索条件を満たすユーザーデータセット*/ public list <usermodel> 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; Import cn.hncu.bookstore.user.dao.factory.userdaofactory; Import cn.hncu.bookstore.user.vo.usermodel; Import cn.hncu.bookstore.user.vo.userqueryModel; public class useribo implements Userebi @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 <Usermodel> getAll(){return dao.getall(); } @Override public List <USERMODEL> getByCondition(userqueryModel UQM){// todo auto-enerated method stub Return null; } @Override public usermodel getSingle(string uuid){return dao.getsingle(uuid); }}userebifactoryクラス:
cn.hncu.bookstore.user.business.factory;
userebifactoryクラス:
パッケージcn.hncu.bookstore.user.business.factory;インポートcn.hncu.bookstore.user.business.ebi.userebi; Import cn.hncu.bookstore.user.ebusiness.ebo.userebo; public class userebifactory {public static userebi getusebi(); }}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.hhncu.bookstore.user.vo.userquerymodel;/** * * interface userdao { / *** function:create one of user** @param usermodel ---作成されるユーザーデータ* @return - trueは作成の成功、false creation failed* / public boolean create(usermodel user); / ** *関数:ユーザーの一意の識別コードuuid * * @param uuid ---ユーザーの一意の識別コードに基づいてユーザーを削除します。各ユーザーは同じではありません * @return --- trueは削除が成功することを意味します。 / ***関数:ユーザーのデータ情報の変更** @paramユーザー---変更する必要があるユーザーデータパラメーター名* @return return true-修正が成功することを意味します。 / ***関数:すべてのユーザーデータを取得** @return --- Usermodelコレクション、つまりユーザーのデータ*/ publicリスト<Usermodel> getAll(); /** *関数:特定の検索条件に応じて検索 * <br/> *検索条件を満たすユーザーデータを返します。 ** @param uqm ---カプセル化検索条件* @return ----検索条件を満たすユーザーデータセット*/ public list <usermodel> 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;/*** ** ** fictory方法* */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.userquerymodel;インポートcn.hncu.bookstore.util.fileioutil;/** * <br/> *ユーザーデータ処理のための特定の実装クラスfile_name = "user.txt"; @Override public boolean create(usermodel user){// 1 first deserialize(read)既存のデータリスト<usermodel> list = fileioutil.readformfile(file_name); //ユーザーが既に存在するかどうかを判断し、(usermodel usermodel:list)forを作成するかどうかを決定します{// 2人のユーザーのuuidsが等しい場合、ユーザーは(usermodel.getuid()。 fileioutil.write2file(list、file_name); true; //正常に作成し、trueを返し、true} @override public boolean delete(string uuid){// 1 first deserialize(read)既存のデータリスト<usermodel> list = fileioutil.readformfile(file_name); //ユーザーが既に存在するかどうかを判断し、//(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人のユーザーのuuidsが等しい場合、ユーザーは(usermodel.getuuid()。equals(uuid)){list.remove(usermodel); fileioutil.write2file(list、file_name); //正常に削除するには、true return trueを返します。 }} // 3ユーザーは存在しません} @Override public boolean update(usermodel user){// 1 deserialize(read)既存のデータfirst list <usermodel> list = fileioutil.readformfile(file_name); // 2ユーザーが既に存在するかどうかを判断し、(int i = 0; i <list.size(); i ++){// uuidを変更できないかどうかを決定します。 UUIDを介してユーザーデータを見つけて、(list.get(i).getuuid()。equals(user.getuuid())))の場合、変更されます。 fileioutil.write2file(list、file_name); //ユーザーを見つけて、trueのreturn trueを返します。 }} // 3ユーザーが存在しない場合、変更は虚偽を返すことに失敗します。 } @Override public List <USERMODEL> getAll(){return fileioutil.readformfile(file_name); } @Override public List <USERMODEL> getByCondition(userqueryModel UQM){// todo auto-enerated method stub Return null; } @Override public usermodel getSingle(string uuid){// 1 Deserialize(読み取り)既存のデータfirst list <usermodel> list = fileioutil.readformfile(file_name); //ユーザーが既に存在するかどうか、およびそれが存在する場合、ユーザーを(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__、__time__ */package 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.factory.userebifactory; Import cn.hncu.bookstore.user.vo.usermodel; Import cn.hhncu.bookstore.util.file.file.fileioutilクラスアドパネルはjavax.swing.jpanelを拡張します{private jframe mainframe = null; / **新しいフォームAddpanel*/ public addpanel(jframe mainframe){this.mainframe = mainframe; initComponents(); myinitdata(); } private void myInitdata(){for(usertypeenum type:usertypeenum.values()){combtype.additem(type.getName()); }} /**このメソッドは、フォームを初期化するためにコンストラクター内から呼び出されます。 *警告:このコードを変更しないでください。このメソッドの内容は、フォームエディターによって常に再生されます。 */// gen-begin:initcomponents // <editor fold defaultstate = "collapsed" 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(); 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.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( "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.setforeground(new Java.awt.Color(51、51、255)); combtype.setModel(new javax.swing.defaultcomboboxmodel(new String [] {"select ..."})); add(combtype); 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( "Dialog"、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(new Java.awt.Font( "Dialog"、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 returen return bottonをクリックします* / private void btnbackactionperformed(java.awt.event.actionevent evt){back(); } private void btnaddActionPerformed(java.awt.event.actionevent evt){// 1パラメーター文字列uuid = tfduuid.getText();文字列名= tfdname.getText(); string pwd = new String(tfdpwd.getPassword());文字列pwd2 = new String(tfdpwd2.getPassword()); if(!pwd.equals(pwd2)){joptionpane.showmessageialog(null、 "パスワード入力は2回矛盾しているので、再入力してください!");戻る; } int type = 0; try {type = usertypeenum.getTypebyname(combtype.getSelectedItem().toString()); } catch(Exception e){joptionpane.showMessageAlig(null、 "ユーザータイプを指定してください!");戻る; } // 2パラメーターの編成usermodel user = new usermodel(); user.setname(name); user.setpwd(pwd); user.setType(タイプ); user.setuid(uuid); // 3ロジックレイヤーを呼び出すuserebi ebi = userebifactory.getuserebi(); // 4direct call(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__、__time__ */package cn.hncu.bookstore.user.ui; Import java.util.list; Import javax.swing.jframe; Import cn.hncu.bookstore.user.user.business.ebi.seerbi; cn.hncu.bookstore.user.business.factory.userebifactory; Import cn.hncu.bookstore.user.vo.usermodel;/***プレゼンテーションレイヤーユーザーリストパネル** @author chen haoxiang* @version 1.0*/public class listpanel extend / **新しいフォームListPanelを作成*/ public ListPanel(JFrame MainFrame){this.mainframe = mainframe; initComponents(); myinitdata(); } / ***すべてのユーザーを読み取り、リストに追加* / private void myinitdata(){userebi user = userebifactory.getuserebi();リスト<Usermodel> list = user.getall(); userlists.setlistdata(list.toarray()); } /**このメソッドは、フォームを初期化するためにコンストラクター内から呼び出されます。 *警告:このコードを変更しないでください。このメソッドの内容は、フォームエディターによって常に再生されます。 */// gen-begin:initcomponents // <editor fold defaultstate = "collapsed" 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(null); userlists.setModel(new javax.swing.abstractlistmodel(){strings = {""}; public int getSize(){return strings.length;} public object getElementat(int i){return strings [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( "user"); jlabel1.settext( "user"); jlabel1.setforeground(new Java.awt.Color(204、0、51)); jlabel1.settext( "user"); list "); add(jlabel1); jlabel1.setbounds(270、30、260、80); btntoadd.setfont(new java.awt.font(" Dialog "、1、18)); btntoadd.addactionlistener(new java.awt.event.actionlistener(){java.awt.event.actionevent evt){btntoaddactionperformed(evt);}}); } // </editor-fold> // gen-end:initcomponents private btntoaddactionperformed(java.awt.event.actionevent evt){mainframe.setcontentpane(新しいアドパネル(メインフレーム)) javax.swing.Javax.swing.jscrollpane jscrollpane1;USERMODELクラス:
cn.hncu.bookstore.user.vo;
USERMODELクラス:
ユーザー値オブジェクトモジュール:
パッケージcn.hncu.bookstore.user.vo; Import java.io.serializable; Import cn.hncu.bookstore.common.usertypeenum;/** * @author chen haoxiang * @version 1.0 * * <br/> *ユーザー情報を節約するために使用される値<br//> * 1。 Setter-Getters Method <br/> *3。EqualsとHashcode Methodを書き込み---プライマリキー(UUID)一意の識別コード<br/> *4。Tostringメソッド<br/> *5。空のパラメーター構築方法<br/> */パブリッククラスのUsermodelはシリアル化可能{プライベート識別コードuuid; pwd; //ユーザーパスワードpublic usermodel(){}/*** function:get uuid-user一意の識別コード** @return return uuid-user一意の識別コード*/public string getuuid(){return uuid; } / *** function:uuid-user一意の識別コードを設定* @param uuid-user一意の識別コードストリングタイプパラメーター* / public void setuuid(string uuid){this.uuid = uuid; } / *** function:get user's username* @return --- name-username* / public string getname(){return name; } / ***関数:ユーザーのユーザー名を設定** @param name - username set fy theユーザー、文字列タイプパラメーター* / public void setname(string name){this.name = name; } / ***関数:ユーザーのタイプを取得します:* 1 - すべての操作を実行でき、すべての操作を実行できます* 2 - ブックモジュールを操作できる人を表します* 3-購入モジュールを操作できる人を表します* 4 - 販売モジュールを操作できる人を表します。 } / ***関数:ユーザーのタイプを設定します:* 1-管理者として示されます、すべての操作を実行できます* 2-ブックモジュールを操作できる人として示される* 3-購入モジュールを操作できる人として示されます* 4-販売モジュールを操作できる人として示されます* setType(int type){this.type = type; } / ***関数:ユーザーのパスワードを取得* @return文字列タイプ、ユーザーのパスワード* / public string getpwd(){return pwd; } / ***関数:ユーザーのパスワードを設定します* @param pwd - string type 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());返品結果; } @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)return false; } else if(!uuid.equals(other.uuid))false; trueを返します。 } @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 extends usermodel {}fileioutilクラス:
cn.hncu.bookstore.util;
fileioutilクラス:
package 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.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.arraylist; Import java.util.list; import javax.swing.joptionpane;/***ユーザーパブリックデータ読み取りおよび書き込みclass* @author chen haoxiang** @version 1.0*/public class fileioutil {public fileioutil(){}/*** @filam filam filam filam filamのnationデータテーブルに) * @すべてのテーブルのReturnレコード! */@suppresswarnings( "unchecked")//警告を押すpublic static <e> list <e> readformfile(string filename){list <e> list = new ArrayList <e>(); final file file = new file(filename); ObjectInputStream in = null; if(!file.exists()){//joptionpane.showmessageialog(null、 "データテーブルは存在しません!");返品リスト。 } try {in = new ObjectInputStream(new FileInputStream(filename)); try {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){new nup runtimeexception( "データベースがclose close failed"); }}} return list; } / ** *リストコレクションをデータファイルに書き込みますfilename * * @paramリスト(保存する必要があるデータコレクション) * @param filename(ファイルが書かれているファイル名) 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){new nup runtimeException( "データベースの閉じた障害!"); }}}}}}}}}}書店クラス:(メイン方法を含む)
cn.hncu.bookstore;
書店クラス:
ユーザーモジュールの主な方法は、このクラスにあります。
/ * * bookstore.java * * __date__、__time__ */package cn.hncu.bookstore; Import cn.hncu.bookstore.user.ui.listpanel;/** * * @author chen haoxiang */public class bookstore extends javax.javax.swing {/** creates {/** createds exter initComponents(); this.setContentPane(new listPanel(this)); this.SetSizable(false); // this.setDefaultCloseoperation(exit_on_close); } /**このメソッドは、フォームを初期化するためにコンストラクター内から呼び出されます。 *警告:このコードを変更しないでください。このメソッドの内容は、フォームエディターによって常に再生されます。 *// gen-begin:initcomponents // <editor fold defaultstate = "collapsed" 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(); deletemenuitem = 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( "file"); 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){exitmenuitemactionperformed(evt);}}); filemenu.add(exitmenuitem); menubar.add(filemenu); editmenu.settext( "edit"); 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( "help"); contentsmenuitem.settext( "contents"); helpmenu.add(contentsmenuitem); aboutmenuitem.settext( "about"); helpmenu.add(aboutmenuitem); menubar.add(helpmenu); Setjmenubar(Menubar); javax.swing.grouplayoutレイアウト= new javax.swing.grouplayout(getContentPane()); getContentPane()。setLayout(レイアウト); layout.sethorizontalgroup(layout.createparlalgoup(javax.swing.grouplayout.alignment.Leading).AddGap(0、400、short.max_value)); layout.setverticalGroup(layout.createparlalgroup(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(new runnable(){public void run(){new bookstore()。 } // gen -begin:変数//変数宣言 - プライベート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; //変数の終わり宣言// gen-end:変数}それが今日のためです、継続することです。 。 。
現在の追加には小さなバグがあります。つまり、ユーザーを追加すると何も入力しません。
ユーザータイプのみを選択するだけで、作成することもできます!次回は修正します。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。