Используйте Java Language, чтобы написать программу, которая имитирует функцию поселения магазина онлайн -супермаркета. Это требует, чтобы программа имел графический пользовательский интерфейс после запуска, который позволяет пользователям вводить информацию о различных приобретенных продуктах и, наконец, предоставил пользовательскому список покупок и общую цену.
Анализ требований:
1. Администратор добавляет продукты и их цены
2. Информация о заказе на печать и код заказа в расчете при покупке продуктов по пользователям:
/ * * Создатель: Zhang Junqiang * Время: 2016/5/15 * */Package Salesys; Импорт java.awt.*; импортировать java.awt.event.*; импортировать java.util.vector; импортировать javax.swing.*; Импорт java.sql.*; класс Goals {public String [] name; Public Float [] цена; Goald () {name = новая строка [100]; цена = новый поплавок [100]; }} public Class Supermarket Extends jframe {public static void main (String [] args) Throws Sqlexception {mainwinow mainwin = new Mainwinow ("Online Supermarket Shopping Checkout"); mainwin.setDefaultCloseoPeration (jframe.exit_on_close); mainwin.setbounds (300, 300, 500, 400); mainwin.setvisible (true); mainwin.setwin (mainwin); mainwin.setminwindowlayout (); }} класс Mainwinow расширяет jframe {Goals Goals; частный пользователь JButton; Частный менеджер JButton; Частный Jlabel LoginLabel; частное управление WWINDOW MAGWIN; private userwindow userwin; частный слушатель Лис; Частный Mainwinow Loginwin; частный int Goodsnum; / * * Настройка интерфейса * */ private jlabel setnamelabel; Частный Jlabel SetPriceLabel; Private JTextField SetNaMetext; Private JTextField SetPricetext; Частный Jbutton Inputbut; Private Textarea inputarea; Частный jbutton returnbut1; Частный Jbutton Cancelbut; / * * Пользовательский интерфейс * */ private Vector <string> buyitem; Private Float [] BuyCount; частный int buynum; Частный JCombobox Goodscombox; Частный jbutton returnbut2; Частный Jlabel ChoiceGoodlabel; Частный Jlabel ShowPriceLabel; Private Jtextfield Showprice; Частная Textarea showChoice; Частный Jlabel Showbuynum; Private JTextfield ShowBuynumText; Частный Jbutton ReceptionBuy; Частный Jbutton deletebuybut; Частный JList Choicelist; Частный Jbutton Countbut; Частный плавание Summoney; / *** Импорт базы данных*/ оператор STMT; Mainwinow (String Winname) Throws SQLexception {Super (Winname); Goodsnum = 0; Buynum = 0; Summoney = (float) 0; товары = новые товары (); user = new Jbutton («Я пользователь»); Manager = new Jbutton («Я администратор»); loginlabel = new jlabel («Пожалуйста, выберите роль!»); magwin = new Managewindow («установить продукт»); Magwin.SetBounds (300, 300, 500, 400); magwin.setDefaultCloseoPeration (do_nothing_on_close); userwin = new userwindow («добро пожаловать на покупку»); userwin.setbounds (300, 300, 500, 400); userwin.setDefaultCloseoPeration (do_nothing_on_close); LIS = новый слушатель (); / * * Установить инициализацию интерфейса * */ setnamelabel = new jlabel ("Торговое имя:"); setPricelabel = new jlabel ("цена:"); setnametext = new JTextField (5); setPriceText = new JTextField (5); inputbut = new Jbutton («Подтвердить к добавлению»); inputarea = new TextARea (); returnBut1 = new Jbutton ("return"); Cancelbut = new Jbutton ("antuct add"); / * * Инициализация пользовательского интерфейса * */ goodcombox = new jcombobox (); returnBut2 = new Jbutton ("return"); ChoiceGoodlabel = new Jlabel («Пожалуйста, выберите продукт:»); showpriceLabel = new jlabel ("цена"); showprice = new Jtextfield (5); ShowChoice = new TextAREA (); ShowBuynum = new Jlabel («Количество покупки:»); ShowBuynumText = new JTextField (5); отправить Buy = new Jbutton («Подтвердить покупку»); deletebuybut = new jbutton ("delete order"); countbut = new jbutton ("урегулирование порядка"); choicelist = new jlist (); buyitem = new Vector <string> (); BuyCount = новый поплавок [100]; / * * Импорт базы данных * */ try {class.forname ("com.mysql.jdbc.driver"); } catch (classnotfoundexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } String url = "jdbc: mysql: // localhost: 3306/device"; String user = "root"; String password = "zjq1314520"; Connection con = drivermanager.getConnection (URL, пользователь, пароль); stmt = con.createStatement (); / * * Экспорт данных базы данных * */ importsql (); } public void importSql () бросает sqlexception {int i = 1; // TODO Автогенерированный метод заглушка ResultSet Result = stmt.ExecuTequery («Выберите имя, цена от Goade_info»); while (result.next ()) {goods.name [i-1] = result.getString (1); Goods.price [i-1] = float.parsefloat (result.getString (2)); i ++; } GoodsNum = I-1; } public void setwin (mainwinow w) {loginwin = w; } public void setminWindowlayout () {inceployncon = new Container (); logincon.setlayout (new Flowlayout ()); logincon.add (менеджер); logincon.add (пользователь); Manager.AddactionListener (LIS); user.addactionListener (LIS); this.setlayout (new Borderlayout ()); this.add (loginlabel, borderlayout.north); this.add (logincon, borderlayout.center); this.validate (); / * * Установить макет интерфейса * */ magwin.setlayout (new Flowlayout ()); magwin.add (setnamelabel); magwin.add (setnametext); magwin.add (setPriceLabel); magwin.add (setPricetext); magwin.add (inputbut); magwin.add (inputarea); Magwin.add (Cancelbut); magwin.add (returnbut1); inputbut.addactionListener (LIS); returnbut1.addactionListener (LIS); Cancelbut.AddactionListener (LIS); / * * Mayout пользовательского интерфейса * */ userwin.setlayout (new Borderlayout ()); Контейнер usercon = new Container (); usercon.setlayout (new Flowlayout ()); usercon.add (ChoiceGoodlabel); usercon.add (Goodscombox); usercon.add (showpricelabel); usercon.add (showprice); usercon.add (showbuynum); usercon.add (showbuynumtext); usercon.add (seperbuy); userwin.add (usercon, borderlayout.north); //choicelist.setlistdata(goods.name); userwin.add (choicelist, borderlayout.center); userwin.add (новый jscrollpane (choicelist)); Контейнер butcon = new Container (); butcon.setlayout (new Flowlayout ()); butcon.add (deletebuybut); butcon.add (countbut); butcon.add (returnbut2); userwin.add (butcon, borderlayout.south); Goodcombox.additemListener (new itemListener () {@Override public void itemStateChanged (itemEvent e) {// todo Автогенерированный метод stub int i = goodcombox.getSelectedIndex (); if (i> = 0) showprice.settext (goods.price [i] .tostring ()); returnBut2.AddactionListener (LIS); soperbuy.addactionListener (LIS); deletebuybut.addactionListener (LIS); countbut.addactionListener (LIS); } private void addComboxItem () {// TODO Автогенерированный метод STUB for (int i = 0; i <GoodsNum; i ++) {GovelCombox.Additem (goods.name [i]); }} класс слушатель реализует ActionListener {@Override public void actionPerformed (actionEvent e) {// todo Автогенерированный метод stub if if (e.getSource () == Manager) {addGoods (); LoginWin.SetVisible (false); magwin.setvisible (true); } if (e.getSource () == user) {loginwin.setVisible (false); userwin.setvisible (true); Goodcombox.RemovealLitems (); addComboxitem (); } if (e.getSource () == inputBut) {// string showout = ""; if (setnametext.getText (). equals ("") || setPricetext.getText (). equals ("")) {joptionpane.showmessageDialog (magwin, "Нет запасных предметов!", "Предупреждение", JoptionPane.plain_message); } else {goods.name [goodsnum] = setnametext.getText (); Goods.price [Goodsnum] = float.parsefloat (setPricetext.getText ()); try { / * * Записать в базу данных * * / stmt.executeupdate («Вставка в Goald_Info (имя, цена) значения ('"+goods.name [GoaldNum]+"', '"+(float) Goods.price [GoaldNum]+"')") "); } catch (sqlexception e1) {// todo автоматически сгенерированный блок e1.printstacktrace (); } Goodsnum ++; addgoods (); setnametext.settext ("" "); setPricetext.settext ("" "); // showout = "Торговое имя:"+setnametext.getText ()+"/t"+"цена:"+setPricetext.getText ()+"/n"; //inputarea.append(showout); }} if (e.getSource () == cancelbut) {if (goodnum> 0) {goodnum--; String deleteName = goods.name [goodsnum]; String deleteprice = goods.price [goodsnum] .toString (); //System.out.println(deletename); / * * Удалить элементы в базе данных * */ string sql = "Удалить из Goade_info, где name = '"+deleteName+"' и price = '"+deleteprice+"'"; try {stmt.executeupdate (sql); } catch (sqlexception e1) {// todo автоматически сгенерированный блок e1.printstacktrace (); } // соединение con = dbmanager .getConnection () ;; // Подготовка ps = con.prepareStatement (SQL); addgoods (); }} if (e.getSource () == returnBut1) {logInwin.setVisible (true); magwin.setvisible (false); } / * * Ответ события пользовательского интерфейса * * / if (e.getSource () == returnBut2) {LogInWin.SetVisible (true); userwin.setvisible (false); } if (e.getSource () == Отправить Buy) {if (! showBuynumText.getText (). equals ("")) {buyCount [GoaldCombox.getSelectedIndex ()] = float.parsefloat (showbuynumText.getText ()); String contentitem = ""; Float summon = float.parsefloat (showbuynumtext.getText ())*(float) goods.price [goodcombox.getSelectedIndex ()]; ContentItem = "Торговое название:"+goods.name [goodcombox.getSelectedIndex ()]+""+"Цена за единицу:"+goods.price [goodcombox.getSelectedIndex ()]. toString ()+""+"Количество покупки:"+showbuynumtext.getText ()+""+"Total Price:"+Summon.tostring (); buyitem.addelement (contentitem); // buyitem [buynum] = contentitem; Buynum ++; chooselist.removeall (); choicelist.setlistdata (buyitem); Summoney+= Summon; } else {joptionpane.showmessageDialog (magwin, «Количество покупки не может быть пустой», «Предупреждение», joptionpane.plain_message); }} if (e.getSource () == deleteBuyBut) {if (choicelist.getSelectedValue () == null) {joptionpane.showmessagegealog (magwin, «нет элемента, который должен быть удален, не выбран», «Warning», joptionpane.plain_message); } else if (buynum> 0) {int i = choicelist.getSelectedIndex (); String selectItem = buyitem.get (i); //System.out.println(selectiTem); String deleteprice = ""; for (int j = 0; j <selectitem.length ()-3; j ++) {// System.out.println (selectItem.substring (j, j+3)); if (selectitem.substring (j, j+3) .equals ("Общая цена:")) {deleteprice = selectitem.substring (j+3, selectitem.length ()); System.out.println (DeletePrice); Summoney- = float.parsefloat (deletePrice); перерыв; }} buyitem.remove (i); choicelist.removeall (); choicelist.setlistdata (buyitem); choicelist.validate (); Buynum--; } else {joptionpane.showmessageDialog (Magwin, «Кулинарная корзина пуста, не может быть удалена», «Предупреждение», joptionpane.plain_message); }} if (e.getSource () == countbut) {// summoney for (int i = 0; i <buyitem.size (); i ++) {string str = buyitem.get (i) .substring (0, 2); if (str.equals ("общая цена")) {buyitem.remove (i); }} buyitem.AddeLement ("Общая цена:"+summoney.toString ()); choicelist.removeall (); choicelist.setlistdata (buyitem); choicelist.validate (); }} private void addgoods () {if (! inputearea.getText (). equals ("")) inputearea.settext (""); // TODO Автогенерированный метод заглушка для (int i = 0; i <GoodsNum; i ++) {String Massage = "Торговое название:"+goods.name [i]+"/t"+"цена:"+goods.price [i] .tostring ()+"/n"; inputarea.append (массаж); }}} класс Managewindow Extends jframe {ManageWindow (String title) {super (title); }} класс userWindow Extends jFrame {userWindow (string title) {super (title); }}Удалите соответствующую часть базы данных и запустите ее на своем компьютере!
Связанные скриншоты:
Интерфейс администратора:
пользовательский интерфейс:
Вышеуказанное - все содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.