Java-Single-Player версия системы управления книжным магазином (модули и идеи и идеи.
представлять
СОВЕТ: В вышеприведенной точке есть каталог, который может быстро найти классы, которые вам нужно увидеть.
Сегодня была сделана небольшая модификация предыдущего кода, чтобы сделать код более совершенным.
Что касается уникального идентификационного кода пользователя UUID, он будет изменен для создания внутренне в программе в будущем.
Текущий UUID все еще установлен пользователем.
Сегодня, для этой программы, мы добавили часть презентационного уровня пользовательского интерфейса и добавили общедоступное перечисление класса.
Ниже приводится публикация всех кодов для программы, которую я написал: Я постепенно закончу писать эту программу, будьте уверены! (Функции, которые необходимо реализовать, можно найти в серии систем управления книжным магазином. Я классифицировал статьи для этой серии, чтобы каждый мог их найти)
Эта серия блогов никогда не будет прервана.
Код теперь слоилен:
Картина после работы программы:
Я разместил код в заказе сверху до нижней части каталога:
Пожалуйста, обрати внимание! Этот кодовый заказ не тот заказ, который я пишу код!
Если вы хотите обратиться к моим письмам, пожалуйста, не следуйте по заказу опубликованного в курсе кода.
Сначала вы должны написать общедоступные классы и классы инструментов.
Опять же: класс уровня данных -> класс логического уровня -> класс уровня презентации
Некоторые фотографии после работы программы:
Usertypeenum class:
cn.hncu.bookstore.common;
Usertypeenum class:
Пакет cn.hncu.bookstore.common;/*** Функция: перечисление типов пользователей! <br/> * Определено в общественном модуле. <br/> * переменные: <br/> * admin (1, «супер -администратор»), <br/> * книга (2, «библиотекарь»), <br/> * in (3, «Покупка администратора»), <br/> * out (4, «Администратор продаж»), <br/> * Сток (5, «Администратор инвентаризации»); {Admin (1, «Super Administrator»), Book (2, «Библиотекарь»), в (3, «Администратор покупки»), Out (4, «Администратор продаж»), акция (5, «Администратор инвентаря»); частный финальный тип int; частное имя финальной строки; / *** Инициализировать имя переменной перечисления* @param type --- Интеллектуальное число, соответствующее переменной перечисления* @param name --- Имя типа строки, соответствующая переменной перечисления*/ private usertypeenum (int type, string name) {this.type = type; this.name = name; } / *** Получить номер текущей переменной перечисления* @return --- Тип Number* / public int getType () {return Type; } / *** Получить китайское имя текущей переменной перечисления* @return --- Имя Китайз* / public String getName () {return name; } /**. * <br/>-если не существует переменной перечисления, соответствующей такому числу, будет брошено сообщение об исключении. */ public static String getNameBytype (int type) {for (userTypeEnum usertype: usertypeenum.values ()) {if (usertype.gettype () == type) {return usertype.getname (); }} бросить новый allosalargumentException («Нет соответствующего типа пользователя в перечислении:"+type); }/** * Получите тип int с переменной перечисления, соответствующую имени, основанному на китайском имени переменной переменной, именем @param --- Имя типа строки, которое необходимо передавать в * @return --- Если есть переменная перечисления, соответствующая такому имени, вернуть тип-инт, соответствующую этой переменной, не так. int getTypebyName (String name) {for (userTypeEnum userType: userTypeEnum.values ()) {if (userType.getName (). equals (name)) {return userType.getType (); }} бросить новый allosalargumentException («Нет соответствующего типа пользователя в перечислении:"+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;/** * Интерфейс логического слоя. USEREBI { / *** Функция: Создать пользователя** @param usermodel --- Пользовательские данные, которые будут созданы* @return --- Истинные средства Создание Успешное, FALSE CREATION FAREATION* / Public Boolean CREATE (USERMODEL USER); / ** * Функция: Удалить пользователя на основе уникального идентификационного кода пользователя uuid * * @param uuid --- Уникальный код идентификации пользователя, каждый пользователь не будет одинаковым * @return --- Истина означает, что удаление является успешным, false означает, что удаление удаления */ public boolean delete (string uuid); / *** Функция: изменить информацию об данных пользователя** @param Пользователь --- Имя параметра пользователя, которое необходимо изменить* @return return true- / *** Функция: Получить все пользовательские данные** @return --- Коллекция usermodel, то есть данные пользователя*/ public <sermodel> getall (); /** * Функция: Поиск в соответствии с определенными условиями поиска, * <br/> * возвращает пользовательские данные, которые соответствуют условиям поиска. ** @param uqm --- Инкапсулированные условия поиска* @return ---- Набор пользовательских данных, который соответствует условиям поиска*/ public <usermodel> getByCondition (userQueryModel UQM); / *** Функция: Получите определенные пользовательские данные** @param Uuid --- Уникальный идентификационный код пользователя* @return --- вернуть пользовательские данные, найденные в соответствии с этим уникальным идентификационным кодом*/ public usermodel getinggle (String uuid);}USEREBO Class:
cn.hncu.bookstore.user.business.ebo;
USEREBO Class:
Пакет cn.hncu.bookstore.user.business.ebo; import java.util.list; импорт cn.hncu.bookstore.user.business.ebi.userebi; импорт cn.hncu.bookstore.user.dao.dao.userdao; cn.hncu.bookstore.user.dao.factory.userdaoFactory; импорт cn.hncu.bookstore.user.vo.usermodel; импорт cn.hncu.bookstore.user.vo.userquerymodel; public class userebo intripments userebi jupebi {private userdaofory. datoforties. @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 автоматическое сгенерированное метод return return null; } @Override public usermodel etsingling (string uuid) {return dao.getsingle (uuid); }}USEREBIFACTORY CLASS:
cn.hncu.bookstore.user.business.factory;
USEREBIFACTORY CLASS:
Пакет cn.hncu.bookstore.user.business.factory; import cn.hncu.bookstore.user.business.ebi.userebi; импорт cn.hncu.bookstore.user.business.ebo.userebo; public userebactory {public userebi getUrebi () {) ratebueBobactory {public userebi getUrebi () {); }}Интерфейс 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; импорт cn.hncu.bookstore.user.vo.userquerymodel;/** * * @aauthor chen * @@aresionmodel;/** * * @aauthor chen * @@aresion.0 Module*/public interface userdao {/*** Функция: создать пользователя** @param usermodel --- Пользовательские данные, которые будут созданы* @return-true / ** * Функция: Удалить пользователя на основе уникального идентификационного кода пользователя uuid * * @param uuid --- Уникальный код идентификации пользователя, каждый пользователь не будет одинаковым * @return --- Истина означает, что удаление является успешным, false означает, что удаление удаления */ public boolean delete (string uuid); / *** Функция: изменить информацию об данных пользователя** @param Пользователь --- Имя параметра пользовательских данных, которое необходимо изменить* @return return true-означает, что изменение успешно, возвращает false-означает неудачу изменений*/ public boolean update (usermodel user); / *** Функция: Получить все пользовательские данные** @return --- Коллекция usermodel, то есть данные пользователя*/ public <sermodel> getall (); /** * Функция: Поиск в соответствии с определенными условиями поиска, * <br/> * возвращает пользовательские данные, которые соответствуют условиям поиска. ** @param uqm --- Инкапсулированные условия поиска* @return ---- Набор пользовательских данных, который соответствует условиям поиска*/ public <usermodel> getByCondition (userQueryModel UQM); / *** Функция: Получите определенные пользовательские данные** @param Uuid --- Уникальный идентификационный код пользователя* @return --- вернуть пользовательские данные, найденные в соответствии с этим уникальным идентификационным кодом*/ public usermodel getinggle (String uuid);}UserDaOfactory Class:
cn.hncu.bookstore.user.dao.factory;
UserDaOfactory Class:
Пакет cn.hncu.bookstore.user.dao.factory; import cn.hncu.bookstore.user.dao.dao.userdao; импорт cn.hncu.bookstore.user.dao.impl.userdaoserimpl;/*** Factory <brbr/>* New Encence @axiang @athershian 1.0 * */public Class userDaOfactory {public Static userDao getUserdao () {return new userdaoSerimpl (); }}Userdaoserimpl class:
cn.hncu.bookstore.user.dao.impl;
Userdaoserimpl class:
Пакет cn.hncu.bookstore.user.dao.impl; import java.util.arraylist; import java.util.list; import cn.hncu.bookstore.user.dao.dao.userdao; импорт cn.hncu.bookstore.user.vo.usermodel; cn.hncu.bookstore.user.vo.userquerymodel; import cn.hncu.bookstore.util.fileioutil;/** * <br/> * Класс конкретного реализации для обработки пользовательских данных --- Реализация пользовательского интерфейса * * @author chen haosiang * @version 1.0 */publicorM final String file_name = "user.txt"; @Override public boolean create (usermodel user) {// 1 First Deserialize (Read) Существующий список данных <SermoDel> list = fileiOutil.readformFile (file_name); // 2 Определите, существует ли пользователь, а затем решите, создать ли для (usermodel usermodel: list) {// Если Uuids из двух пользователей одинаковы, пользователь одинаково if (usermodel.getuuid (). Equals (user.getuuid ())) {return false; // Уже существует пользователь). Fileioutil.write2file (list, file_name); вернуть true; // Создать успешно, вернуть true} @Override public boolean delete (string uuid) {// 1 First Deserialize (Read) существующий список данных <usermodel> list = fileioutil.readformfile (file_name); // 2 Определите, существует ли пользователь, а затем решите, удалить ли удалить // for (int i = 0; i <list.size (); i ++) {// if (list.get (i) .getuuid (). Equals (uuid)) {// list.remove (i); // fileioutil.write2file (list, file_name); // вернуть истину; //} //} для (usermodel usermodel: list) {// Если UUID 2 пользователей равны, пользователь одинаково if (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 (read) существующий список данных первого <usermodel> list = fileioutil.readformfile (file_name); // 2 Определите, существует ли пользователь, а затем решите, создать ли для (int i = 0; i <list.size (); i ++) {// uuid не может быть изменен. Найти пользовательские данные через UUID и изменить их в порядке, если (list.get (i) .getuuid (). Equals (user.getuuid ())) {// Измените найденного пользователя на list.set.set (i, user); Fileioutil.write2file (list, file_name); // Найти пользователя и вернуть True return true; }} // 3 Если пользователь не существует, модификация не может вернуть false; } @Override public list <usermodel> getall () {return fileioutil.readformfile (file_name); } @Override public list <usermodel> getByCondition (userQueryModel uqm) {// todo автоматическое сгенерированное метод return return null; } @Override public usermodel etsingling (string uuid) {// 1 deserialize (read) существующий список данных первого списка <usermodel> 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 Class:
cn.hncu.bookstore.user.ui;
AddPanel Class:
/ * * Addpanel.java * * Создано __date__, __time__ */package cn.hncu.bookstore.user.ui; импорт javax.swing.jframe; import javax.swing.joptionpane; импорт cn.hncu.bookstore.common.usertypeenum; cn.hncu.bookstore.user.business.ebi.userebi; import cn.hncu.bookstore.user.business.factory.userebifactory; импорт cn.hncu.bookstore.user.vo.usermodel; import.hncu.bookstore.Util.fileiTil; Haoxiang*/public class addpanel расширяет javax.swing.jpanel {private jframe manainframe = null; / ** Создает новую форму addPanel*/ public addPanel (jframe manainframe) {this.mainframe = manicframe; initComponents (); myinitdata (); } private void myInitData () {for (userTypeEnum type: usertypeenum.values ()) {combtype.additem (type.getName ()); }} /** Этот метод вызывается из конструктора, чтобы* инициализировать форму. * Предупреждение: не изменяйте этот код. Содержание этого метода * всегда регенерируется редактором форм. */// gen-begin: initComponents // <editor-fold defaultState = "couplapsed" 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 (); 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"); добавить (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 ("Dialog", 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 ("Dialog", 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.setbounds (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 ("Dialog", 1, 18)); Combtype.setforeground (new java.awt.color (51, 51, 255)); combtype.setmodel (new javax.swing.defaultcomboboboxmodel (new String [] {"Пожалуйста, выберите ..."})); Добавить (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 ("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);}}); добавить (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 () {manabrame.setContentPane (new ListPanel (Manicframe)); Manaframe.validate (); } / ***Слушайте кнопку обратной стороны*@param Нажмите «Слушай» для возврата кнопки* / private void btnbackActionperformed (java.awt.event.actionevent evt) {back (); } private void btnaddactionperformed (java.awt.event.actionevent evt) {// 1 Соберите параметры 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 », входы пароля противоречивы два раза, пожалуйста, повторно введите!»); возвращаться; } int type = 0; try {type = usertypeenum.gettypebyname (combtype.getSelectedItem () .toString ()); } catch (Exception e) {joptionPane.showmessageDialog (null, «Укажите тип пользователя!»); возвращаться; } // 2 Организовать параметры usermodel user = new usermodel (); user.setname (имя); user.setpwd (pwd); user.settype (type); user.setUuid (uuid); // 3 вызовать логический слой userebi ebi = userebifactory.getuserebi (); // 4direct на разные страницы в соответствии с результатом, возвращаемым вызовом if (ebi.create (user)) {back (); } else {joptionpane.showmessageDialog (null, "Этот пользователь уже существует!"); }} // gen -begin: переменные // Объявление переменных - не изменять частную javax.swing.jbutton btnadd; Частный javax.swing.jbutton btnback; Частный javax.swing.jcombobox Combtype; Частный javax.swing.jlabel jlabel1; Частный javax.swing.jlabel jlabel2; Частный javax.swing.jlabel jlabel3; Частный javax.swing.jlabel jlabel4; Частный javax.swing.jlabel jlabel5; Частный 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 Class:
cn.hncu.bookstore.user.ui;
ListPanel Class:
/ * * Listpanel.java * * Создан __date__, __time__ */package cn.hncu.bookstore.user.ui; import java.util.list; импорт javax.swing.jframe; импорт cn.hncu.bookstore.user.business.ebi.userebi; cn.hncu.bookstore.user.business.factory.userebifactory; import cn.hncu.bookstore.user.vo.usermodel;/*** Список листинга-пользователя презентации** @author chen haoxiang* @version 1.0*/public listpanel infanel javax.swane.jpanemame joxiang* @version 1.0*/public sirectpanel javax.shame. / ** Создает новые формы listpanel*/ public listpanel (jframe manainframe) {this.mainframe = manicframe; initComponents (); myinitdata (); } / *** Прочтите всех пользователей и добавьте их в список* / private void myinitdata () {userebi user = userebifactory.getuserebi (); List <usermodel> list = user.getall (); userlists.setlistdata (list.toarray ()); } /** Этот метод вызывается из конструктора, чтобы* инициализировать форму. * Предупреждение: не изменяйте этот код. Содержание этого метода * всегда регенерируется редактором форм. */// gen-begin: initComponents // <editor-fold defaultState = "couplapsed" desc = "сгенерированный код"> 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;} public getElementat (int i) {return Strings [i];}}); jscrollpane1.setViewPortView (пользовательские линии); добавить (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 («Пользователь»); Список "); добавить (jlabel1); jlabel1.setbounds (270, 30, 260, 80); btntoadd.setfont (new java.awt.font (" диалог ", 1, 18)); btntoadd.settext ("/u6dfb/u52a0/u7528/u6237 "); java.awt.event.actionlistener () {public void actionperformed (java.awt.event.actionevent evt) btntoaddactionperformed (java.awt.event.actionevent evt) {maneframe.setContentPane (New AddPanel (Manicframe); jlabel1;Usermodel class:
cn.hncu.bookstore.user.vo;
Usermodel class:
Пользовательский объектный модуль:
Пакет cn.hncu.bookstore.user.vo; import java.io.serializable; import cn.hncu.bookstore.common.usertypeenum;/** * @author chen haoxiang * @version 1.0 * <br/> * Quarde, используемый для сохранения пользовательской информации <brbr/> 1. Метод Setter-Getters <br/> * 3. write equals and hashcode Метод --- Используйте первичный ключ (uuid) Уникальный идентификационный код <br/> * 4. Метод ToString <br/> * 5. Пустой метод построения параметров <br/> */public class usermodel внедряет сериализованный {приватная строка UUID; // пользователь уникальный код пользователя подваженная строка; pwd; // пароль пользователя public usermodel () {}/*** Функция: получить уникальный идентификационный код UUID-USER** @return return uuid-user уникальный идентификационный код*/public String getUuid () {return uuid; } / *** Функция: установить UUID-USER Уникальный идентификационный код* @param UUID-USER Уникальный идентификационный код-стринг параметр* / public void setUuid (string uuid) {this.uuid = uuid; } / *** Функция: получить имя пользователя* @return --- name-username* / public String getName () {return name; } / *** Функция: Установите имя пользователя** @param name-username, установленное пользователем, параметр типа строки* / public void setname (string name) {this.name = name; } / *** Функция: Получите тип пользователя:* 1 - представляет администратора, и все операции могут быть выполнены* 2 - представляет человека, который может управлять модулем книги* 3 - представляет человека, который может управлять модулем покупки* 4 - представляет человека, который может управлять модулем продаж* 5 реагирует тип intortipe inte inte gate } / *** Функция: Установите тип пользователя:* 1 - обозначены как администратор. Тип) {this.Type = type; } / *** Функция: Получить пароль пользователя* @return String Type, пароль пользователя* / public String getPwd () {return pwd; } / *** Функция: Установите пароль пользователя* @param pwd-Параметр типа String* / 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) вернуть true; if (obj == null) вернуть false; if (getClass ()! = obj.getClass ()) вернуть false; USERMODEL Другое = (USERMODEL) OBJ; if (uuid == null) {if (shry.uuid! = null) вернуть false; } else if (! uuid.equals (ore.uuid)) вернуть false; вернуть истину; } @Override public String toString () {return uuid + "," + name + "," + usertypeenum.getNameBytype (type); }}UserQueryModel Class:
cn.hncu.bookstore.user.vo;
UserQueryModel Class:
Хотя кода нет, его нельзя игнорировать! Это то, что вам нужно при поиске пользователей.
Я написал причину в серии.
Пакет cn.hncu.bookstore.user.vo;/** * * * @author Chen haoxiang * * @version 1.0 */public class userquerymodel расширяет usermodel {}FileiOutil Class:
cn.hncu.bookstore.util;
FileiOutil Class:
Пакет cn.hncu.bookstore.util; import java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; импорт java.io.fileoutputstream; импорт java.io.ioexception; импорт java.io.objectiNputstream; import.io.ioexception; импорт java.io.objectiNputstream; import.io.ioexception; импорт. java.util.arraylist; import java.util.list; import javax.swing.joptionpane;/*** Пользовательский общедоступный класс для чтения и записи* @author Chen haoxiang** @version 1.0*/public class fileioutil {publicioutil () {}/** Читать все данные из DataBase и возвращайте It* @ @@pare @@pare: @ @ @ @ @@palen Таблица) * @return Records всех таблиц! */@Suppresswarnings ("unchecked") // Нажмите Warning Public Static <e> list <e> readformfile (string filename) {list <e> list = new ArrayList <e> (); окончательный файл файла = новый файл (имя файла); ObjectInputStream in = null; if (! file.exists ()) {//joptionpane.showmessageDialog(Null, «Таблицы данных не существует!»); вернуть список; } try {in = new ObjectInputStream (new FileInputStream (имя файла)); 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) {бросить новое runtimeexception ("Закрытие базы данных не удалось"); }}} return List; } / ** * Запишите сбор списков в файл файла данных * * * @param List (сбор данных, который необходимо хранить) * @param filename (имя файла, на которое написан файл) * / public static <e> void write2file (list <e> list, string fileName) {objectOutputeam out = null; try {out = new objectOutputStream (new FileOutputStream (имя файла)); out.writeobject (список); } 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__ */package cn.hncu.bookstore; import cn.hncu.bookstore.user.ui.listpanel;/** * * @author Chen Haoxiang */public Classstor {initComponents (); this.setContentPane (New ListPanel (this)); this.SetReSizable (false); // this.setDefaultCloseoPeration (exit_on_close); } /** Этот метод вызывается из конструктора, чтобы* инициализировать форму. * Предупреждение: не изменяйте этот код. Содержание этого метода * всегда регенерируется редактором форм. */// gen-begin: initComponents // <editor-fold defaultState = "couplapsed" 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 (); Содержимое menuitem = 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 ("Сохранить как ..."); 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 ("копия"); editmenu.add (copymenuitem); pastemenuitem.settext ("paste"); editmenu.add (pastemenuitem); deletemenuitem.settext ("delete"); editmenu.add (deletemenuitem); menubar.add (editmenu); helpmenu.settext («Помогите»); contentsmenuitem.settext ("Содержимое"); holdmenu.add (contentsmenuitem); aboutmenuitem.settext («О»); holdmenu.add (About Menuitem); menubar.add (holdmenu); SetJmenubar (Menubar); javax.swing.grouplayout mayout = new javax.swing.grouplayout (getContentPane ()); getContentPane (). SetLayout (макет); Mayout.sethorizontalGroup (layout.createParallelGroup (javax.swing.grouplayout.lignment.Leading) .Addgap (0, 400, short.max_value)); layout.seterticalGroup (layout.createParalleLgroup (javax.swing.grouplayout.lignment.Leading) .Addgap (0, 279, short.max_value)); пакет(); } // </editor-fold> // gen-end: initComponents private void eSitmenuiteMactionPerformed (java.awt.event.actionevent evt) {// gen-first: event_exitmenuitemactionperformed System.exit (0); } // Gen-last: event_exitmenuitemactionperformed/** * @param аргументы командной строки */public static void main (string args []) {java.awt.eventqueue.invokelater (new Runnable () {public void run () {new BookStore (). SetVisible (TRUE); } // 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; Частный javax.swing.jmenu filemenu; Частный javax.swing.jmenu Helpmenu; Частный 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 больше.