ใช้ภาษา Java เพื่อเขียนโปรแกรมที่จำลองฟังก์ชั่นการตั้งถิ่นฐานการช็อปปิ้งของซูเปอร์มาร์เก็ตออนไลน์ ต้องการให้โปรแกรมมีส่วนต่อประสานผู้ใช้แบบกราฟิกหลังจากทำงานซึ่งช่วยให้ผู้ใช้สามารถป้อนข้อมูลเกี่ยวกับผลิตภัณฑ์ที่ซื้อต่าง ๆ และในที่สุดก็ให้รายการช้อปปิ้งของผู้ใช้และราคารวม
การวิเคราะห์ข้อกำหนด:
1. ผู้ดูแลระบบเพิ่มผลิตภัณฑ์และราคาของพวกเขา
2. ข้อมูลการสั่งซื้อและรหัสสั่งซื้อการชำระเงินเมื่อซื้อผลิตภัณฑ์โดยผู้ใช้:
/ * * ผู้สร้าง: Zhang Junqiang * เวลา: 2016/5/15 * */แพ็คเกจ Salesys; นำเข้า Java.awt.*; นำเข้า java.awt.event.*; นำเข้า java.util.vector; นำเข้า Javax.swing.*; นำเข้า Java.sql.*; สินค้าชั้น {สตริงสาธารณะ [] ชื่อ; Public Float [] ราคา; สินค้า () {name = new String [100]; ราคา = ใหม่ลอย [100]; }} Supermarket ระดับสาธารณะขยาย JFrame {โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น Sqlexception {mainwinow mainwin = mainwinow ใหม่ ("การชำระเงินช็อปปิ้งซูเปอร์มาร์เก็ตออนไลน์"); mainwin.setDefaultCloseoperation (jframe.exit_on_close); mainwin.setbounds (300, 300, 500, 400); mainwin.setVisible (จริง); Mainwin.setwin (Mainwin); Mainwin.setMinWindowLayout (); }} คลาส MainWinow ขยาย JFrame {สินค้าสินค้า; ผู้ใช้ JButton ส่วนตัว; ผู้จัดการ JButton ส่วนตัว; ส่วนตัว Jlabel LoginLabel; Managewindow Magwin ส่วนตัว; UserWindow Private Userwin; ผู้ฟังส่วนตัว Lis; Mainwinow Private Loginwin; สินค้า int ส่วนตัว; / * * การตั้งค่าอินเตอร์เฟส * */ ส่วนตัว JLabel setNamelabel; ส่วนตัว Jlabel SetPricelabel; ส่วนตัว jtextfield setNametext; ส่วนตัว jtextfield setPricetext; Private Jbutton Input -but; textarea ส่วนตัว inputarea; JBUTTON ส่วนตัวกลับ BUT1; JButton ส่วนตัว Cancelbut; / * * อินเทอร์เฟซผู้ใช้ * */ เวกเตอร์ส่วนตัว <String> BuyItem; private float [] buycount; buynum ส่วนตัว; jcomboBox private goodscombox; JBUTTON ส่วนตัว RETURNBUT2; Jlabel Private ChoiceGoodlabel; Private Jlabel Showpricelabel; Private Jtextfield Showprice; Textarea Showchoice ส่วนตัว; Private Jlabel Showbuynum; Private Jtextfield Showbuynumtext; JButton ส่วนตัว SubmentBuy; ส่วนตัว JButton DELETEBUYBUT; jlist choicelist ส่วนตัว; Jbutton ส่วนตัว Countbut; Summoney ลอยส่วนตัว; / *** นำเข้าฐานข้อมูล*/ คำสั่ง stmt; Mainwinow (String winname) พ่น Sqlexception {super (winname); GoodsNum = 0; buynum = 0; summoney = (ลอย) 0; สินค้า = สินค้าใหม่ (); user = new JButton ("ฉันเป็นผู้ใช้"); ผู้จัดการ = new JButton ("ฉันเป็นผู้ดูแลระบบ"); loginLabel = new JLabel ("โปรดเลือกบทบาท!"); magwin = ใหม่ managewindow ("ชุดผลิตภัณฑ์"); Magwin.setbounds (300, 300, 500, 400); magwin.setDefaultCloseoperation (do_nothing_on_close); userwin = ใหม่ 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 = textarea ใหม่ (); returnBut1 = new JButton ("return"); cancelBut = new JButton ("Retract Add"); / * * การเริ่มต้นอินเทอร์เฟซผู้ใช้ * */ goodscombox = new jcombobox (); returnBut2 = new JButton ("return"); ChoiceGoodLabel = new JLabel ("โปรดเลือกผลิตภัณฑ์:"); showpricelabel = new jlabel ("ราคา"); showprice = ใหม่ jtextfield (5); ShowChoice = new Textarea (); showbuynum = new jlabel ("ปริมาณการซื้อ:"); showbuynumtext = new jtextfield (5); submentBuy = new JButton ("ยืนยันการซื้อ"); DELETEBUYBUT = JBUTTON ใหม่ ("ลบคำสั่งซื้อ"); countBut = new JButton ("การชำระคำสั่งซื้อ"); Choicelist = new Jlist (); buyItem = เวกเตอร์ใหม่ <string> (); buyCount = ใหม่ลอย [100]; / * * ฐานข้อมูลนำเข้า * */ ลอง {class.forName ("com.mysql.jdbc.driver"); } catch (classnotfoundexception e) {// todo บล็อก catch block ที่สร้างขึ้นอัตโนมัติ e.printstacktrace (); } string url = "jdbc: mysql: // localhost: 3306/อุปกรณ์"; String user = "root"; สตริงรหัสผ่าน = "zjq1314520"; การเชื่อมต่อ con = drivermanager.getConnection (URL, ผู้ใช้, รหัสผ่าน); stmt = con.createstatement (); / * * การส่งออกข้อมูลฐานข้อมูล * */ importSQL (); } โมฆะสาธารณะ importsql () พ่น sqlexception {int i = 1; // todo วิธีการที่สร้างขึ้นอัตโนมัติผล stub resultet resultet = stmt.executeQuery ("เลือกชื่อราคาจาก goods_info"); ในขณะที่ (result.next ()) {goods.name [i-1] = result.getString (1); goods.price [i-1] = float.parsefloat (result.getString (2)); i ++; } goodsNum = i-1; } โมฆะสาธารณะ setwin (mainwinow w) {loginwin = w; } โมฆะสาธารณะ setMinWindowLayout () {คอนเทนเนอร์ loginCon = new container (); logincon.setLayout (ใหม่ 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 (ใหม่ 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); / * * โครงร่างส่วนต่อประสานผู้ใช้ * */ userwin.setLayout (ใหม่ BorderLayout ()); container usercon = new container (); usercon.setLayout (ใหม่ flowlayout ()); usercon.add (Choicegoodlabel); usercon.add (Goodscombox); usercon.add (showpricelabel); usercon.add (showprice); usercon.add (showbuynum); usercon.add (showbuynumtext); usercon.add (submentbuy); userwin.add (usercon, borderlayout.north); //choicelist.setlistdata(goods.name); userwin.add (choicelist, borderlayout.center); userwin.add (JScrollpane ใหม่ (Choicelist)); คอนเทนเนอร์ butcon = ใหม่คอนเทนเนอร์ (); butcon.setLayout (ใหม่ flowlayout ()); butcon.add (deletebuybut); butcon.add (countbut); butcon.add (returnbut2); userwin.add (butcon, borderlayout.south); Goodscombox.additemListener (ใหม่ itemListener () {@Override โมฆะสาธารณะ itemStateChanged (itemEvent e) {// วิธีการที่สร้างอัตโนมัติโดยอัตโนมัติ Stub int i = goodscombox.getSelectedIndex (); ถ้า (i> = 0) showprice.settext (goods.price [i] returnbut2.addactionListener (lis); submentbuy.addactionListener (LIS); DELETEBUYBUT.ADDACTIONLISTENER (LIS); countbut.addactionListener (LIS); } โมฆะส่วนตัว addcomboxitem () {// todo วิธีการที่สร้างอัตโนมัติ stub สำหรับ (int i = 0; i <goodsnum; i ++) {goodscombox.additem (goods.name [i]); }} ผู้ฟังคลาสใช้ ActionListener {@Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {// todo วิธีการที่สร้างขึ้นอัตโนมัติ stub ถ้า (e.getSource () == ผู้จัดการ) {addGoods (); loginwin.setVisible (เท็จ); Magwin.setVisible (จริง); } if (e.getSource () == ผู้ใช้) {loginWin.setVisible (เท็จ); userwin.setVisible (จริง); Goodscombox.removeallitems (); addcomboxitem (); } if (e.getSource () == inputBut) {// string showout = ""; if (setNameText.getText (). เท่ากับ ("") || setPricetext.getText (). เท่ากับ ("")) {joptionpane.showmessagedialog (Magwin, "ไม่มีรายการสำรอง!", "คำเตือน", joptionpane.plain_message); } else {goods.name [goodsnum] = setNametext.getText (); goods.price [goodsnum] = float.parsefloat (setpricetext.getText ()); ลอง { / * * เขียนไปยังฐานข้อมูล * * / stmt.executeUpdate ("แทรกลงใน goods_info (ชื่อราคา) ค่า ('"+goods.name [goodsnum]+"', '"+(ลอย) goods.price [goodsnum]+")"); } catch (sqlexception e1) {// todo catch block catch auto-generated e1.printstacktrace (); } GoodsNum ++; addgoods (); setNametext.settext (""); setPricetext.settext (""); // showout = "ชื่อการค้า:"+setNameText.getText ()+"/t"+"ราคา:"+setPricetext.getText ()+"/n"; //inputarea.append( showout); }} if (e.getSource () == cancelBut) {ถ้า (goodsNum> 0) {goodsnum--; string deletename = goods.name [goodsnum]; String deletePrice = goods.price [goodsnum] .tostring (); //system.out.println(deletename); / * * ลบองค์ประกอบในฐานข้อมูล * */ string sql = "ลบออกจาก goods_info โดยที่ name = '" deletename+"' และ price = '" deletePrice+"'"; ลอง {stmt.executeUpdate (SQL); } catch (sqlexception e1) {// todo catch block catch auto-generated e1.printstacktrace (); } // การเชื่อมต่อ con = dbManager .getConnection () ;; // preparedStatement ps = con.prepareStatement (SQL); addgoods (); }} if (e.getSource () == returnBut1) {loginWin.setVisible (จริง); Magwin.setVisible (เท็จ); } / * * การตอบสนองเหตุการณ์อินเทอร์เฟซผู้ใช้ * * / if (e.getSource () == returnBut2) {loginWin.SetVisible (จริง); userwin.setVisible (เท็จ); } if (e.getSource () == submentBuy) {ถ้า (! showbuynumtext.getText (). equals (")) {buyCount [goodscombox.getSelectedIndex ()] = float.parsefloat (showbuynumtext.getText (); String ContentItem = ""; summon float = float.parsefloat (showbuynumtext.getText ())*(float) goods.price [goodscombox.getSelectedIndex ()]; contentItem = "ชื่อทางการค้า:"+goods.name [goodscombox.getSelectedIndex ()]+""+"ราคาหน่วย:"+goods.price [goodscombox.getSelectedIndex ()]. toString ()+""+"ปริมาณการซื้อ:" showbuynumtext.getText ()+" BuyItem.Addelement (ContentItem); // buyItem [buynum] = contentItem; buynum ++; chooselist.removeall (); Choicelist.setListData (BuyItem); summoney+= summon; } else {joptionpane.showMessageDialog (Magwin, "ปริมาณการซื้อไม่สามารถว่างเปล่า", "คำเตือน", joptionpane.plain_message); }} if (e.getSource () == deleetebuybut) {ถ้า (choicelist.getSelectedValue () == null) {joptionpane.showMessagedialog (Magwin, "ไม่มีรายการที่จะถูกลบ", "เตือน", Joption.plain_message); } อื่นถ้า (buynum> 0) {int i = choicelist.getSelectedIndex (); String selectItem = buyItem.get (i); //system.out.println(SelectItem); String deletePrice = ""; สำหรับ (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 สำหรับ (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 (); }} โมฆะส่วนตัว addGoods () {if (! inputarea.getText (). เท่ากับ ("")) inputarea.settext (""); // todo วิธีการที่สร้างอัตโนมัติ stub สำหรับ (int i = 0; i <goodsnum; i ++) {String Massage = "ชื่อทางการค้า:"+goods.name [i]+"/t"+"ราคา:"+goods.price [i] .toString ()+"/n"; inputarea.append (การนวด); }}} คลาส managewindow ขยาย jframe {managewindow (ชื่อสตริง) {super (ชื่อ); }} คลาส userWindow ขยาย JFrame {UserWindow (ชื่อสตริง) {super (ชื่อ); -ลบส่วนฐานข้อมูลที่เกี่ยวข้องและเรียกใช้บนคอมพิวเตอร์ของคุณ!
ภาพหน้าจอที่เกี่ยวข้อง:
อินเทอร์เฟซผู้ดูแลระบบ:
ส่วนต่อประสานผู้ใช้:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น