Gunakan bahasa Java untuk menulis program yang mensimulasikan fungsi penyelesaian belanja supermarket online. Ini mengharuskan program ini memiliki antarmuka pengguna grafis setelah berjalan, yang memungkinkan pengguna untuk memasukkan informasi tentang berbagai produk yang dibeli, dan akhirnya memberikan daftar belanja pengguna dan total harga.
Analisis Persyaratan:
1. Administrator menambahkan produk dan harganya
2. Cetak Informasi Pesanan dan Kode Pesanan Penyelesaian Saat Membeli Produk oleh Pengguna:
/ * * Pencipta: Zhang Junqiang * Waktu: 2016/5/15 * */Paket Salesys; impor java.awt.*; impor java.awt.event.*; impor java.util.vector; impor javax.swing.*; impor java.sql.*; class goods {public string [] name; Harga float [] publik; Goods () {name = New String [100]; harga = float baru [100]; }} supermarket kelas publik memperluas jframe {public static void main (string [] args) melempar sqlexception {mainwinow mainwin = new Mainwinow ("checkout belanja supermarket online"); Mainwin.setDefaultCloseOperation (jframe.exit_on_close); Mainwin.setbounds (300, 300, 500, 400); Mainwin.setVisible (true); Mainwin.setwin (Mainwin); Mainwin.setminWindowlayout (); }} kelas Mainwinow memperluas jframe {barang barang; Pengguna Jbutton Pribadi; Manajer Jbutton Pribadi; Private Jlabel LoginLabel; Manajer Private Magwin; Userwin Pengguna Pribadi; pendengar pribadi Lis; Loginwin Mainwinow Pribadi; Goodsnum int pribadi; / * * Pengaturan Antarmuka * */ Private Jlabel Setnamelabel; Private Jlabel SetPricelabel; Private JTextField SetNametext; Private JTextField SetPriceText; inpute jbutton pribadi; Inputarea TextArea Pribadi; pribadi jbutton returnbut1; Private Jbutton membatalkan tetapi; / * * Antarmuka pengguna * */ vektor pribadi <string> buyitem; float pribadi [] buycount; private int buynum; Private Jcombobox Goodscombox; pribadi jbutton returnbut2; Private Jlabel ChoiceGoodLabel; Private Jlabel Showpricelabel; Private JTextfield ShowPrice; showchoice textarea pribadi; Private Jlabel Showbuynum; Private JTextfield ShowBuynumText; Private Jbutton SubmitBuy; pribadi jbutton deletebuybut; Choicelist JList pribadi; countbut jbutton pribadi; summoney float pribadi; / *** Impor basis data*/ pernyataan stmt; Mainwinow (String WinName) melempar SQlexception {super (WinName); goodsnum = 0; buynum = 0; Summoney = (float) 0; barang = barang baru (); pengguna = jbutton baru ("Saya seorang pengguna"); manajer = jbutton baru ("Saya seorang administrator"); LoginLabel = new jlabel ("Silakan pilih peran!"); Magwin = ManagemeWindow baru ("Set Produk"); Magwin.setbounds (300, 300, 500, 400); magwin.setDefaultCloseOperation (do_nothing_on_close); userwin = UserWindow baru ("Selamat datang untuk membeli"); userwin.setbounds (300, 300, 500, 400); userwin.setDefaultCloseOperation (do_nothing_on_close); lis = pendengar baru (); / * * Set Inisialisasi Antarmuka * */ setNamelabel = new jlabel ("Nama dagang:"); setPricelabel = jlabel baru ("harga:"); setnametext = JTextField baru (5); setPriceText = JTextField baru (5); inputbut = jbutton baru ("konfirmasi untuk menambahkan"); inputArea = TextArea baru (); returnbut1 = jbutton baru ("return"); cancelbut = jbutton baru ("retract add"); / * * Inisialisasi Antarmuka Pengguna * */ GoodsComBox = new jcomboBox (); returnBut2 = jbutton baru ("return"); PilihanGoodLabel = JLabel baru ("Silakan pilih Produk:"); showpricelabel = new jlabel ("harga"); showprice = jTextfield baru (5); showChoice = new TextArea (); showbuynum = new jlabel ("kuantitas beli:"); showbuynumtext = new jTextField (5); submitbuy = jbutton baru ("konfirmasi pembelian"); deletebuybut = jbutton baru ("hapus urutan"); countbut = jbutton baru ("Penyelesaian Pesanan"); choicelist = jList baru (); buyitem = vektor baru <string> (); buycount = float baru [100]; / * * Impor basis data * */ coba {class.forname ("com.mysql.jdbc.driver"); } catch (ClassNotFoundException e) {// TODO AUTO-ENCOMEERATED Catch Block E.PrintStackTrace (); } String url = "jdbc: mysql: // localhost: 3306/device"; String user = "root"; String password = "ZJQ1314520"; Koneksi con = driverManager.getConnection (url, pengguna, kata sandi); stmt = con.createStatement (); / * * Ekspor data basis data * */ imporSQL (); } public void imporSQL () melempar SQlexception {int i = 1; // TODO METODE AUTO-AUTOLED Hasil rintisan hasil = stmt.executeQuery ("Pilih Nama, Harga dari Goods_info"); while (result.next ()) {goods.name [i-1] = result.getString (1); goods.price [i-1] = float.parsefloat (result.getString (2)); i ++; } goodnum = i-1; } public void setWin (mainwinow w) {loginwin = w; } public void setminwindowlayout () {container logincon = container baru (); Logincon.setLayout (FlowLayout baru ()); Logincon.Add (Manajer); logincon.add (pengguna); Manager.AddactionListener (LIS); user.addactionListener (LIS); this.setLayout (borderlayout baru ()); this.add (LoginLabel, borderlayout.north); this.add (Logincon, borderlayout.center); this.validate (); / * * Atur tata letak antarmuka * */ magwin.setLayout (flowlayout baru ()); 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); / * * Tata letak antarmuka pengguna * */ userwin.setlayout (borderlayout baru ()); Wadah usercon = wadah baru (); usercon.setlayout (flowlayout baru ()); usercon.add (pilihangoodlabel); usercon.add (GoodsCombox); usercon.add (showpricelabel); usercon.add (showprice); usercon.add (showbuynum); usercon.add (showbuynumtext); usercon.add (submitbuy); userwin.add (usercon, borderlayout.north); //choicelist.setListData(goods.name); userwin.add (choicelist, borderlayout.center); userwin.add (jscrollpane baru (choicelist)); Wadah Butcon = wadah baru (); butcon.setLayout (flowlayout baru ()); butcon.add (deletebuybut); butcon.add (countbut); butcon.add (returnbut2); userwin.add (Butcon, borderlayout.south); GoodsComBox.AdditemListener (ItemListener baru () {@Override public void itemStateChanged (itemEvent e) {// TODO Metode yang dihasilkan secara otomatis stub int i = goodscombox.getSelectedIndex (); if (i> = 0) showprice.settext (goods.price [i] .tostring (i> = 0); returnbut2.addactionListener (LIS); submitbuy.addactionListener (LIS); deletebuybut.addactionlistener (lis); countbut.addactionlistener (lis); } private void addComBoxItem () {// TODO Metode yang dihasilkan otomatis untuk (int i = 0; i <goodsnum; i ++) {goodscombox.additem (goods.name [i]); }} class listener mengimplementasikan ActionListener {@Override public void actionPerformed (ActionEvent e) {// TODO Metode yang dihasilkan otomatis Stub if (e.getSource () == Manager) {addGoods (); loginwin.setVisible (false); magwin.setVisible (true); } if (e.getSource () == pengguna) {loginwin.setVisible (false); userwin.setVisible (true); GoodsComBox.RemoveAllitems (); addComBoxItem (); } if (e.getSource () == inputbut) {// string showout = ""; if (setnametext.getText (). Equals ("") || setPricetext.getText (). Equals ("")) {jOptionPane.showmessageDialog (Magwin, "Tidak ada item cadangan!", "PERINGATAN", JOPTIONPANE.PLAIN_MESSAGE); " } else {goods.name [goodsnum] = setnametext.getText (); goods.price [goodsnum] = float.parsefloat (setpricetext.getText ()); Coba { / * * Tulis ke database * * / stmt.executeupdate ("Masukkan ke dalam Goods_info (nama, harga) nilai ('"+goods.name [goodsnum]+"', '" "+(float) goods.price [goodsnum]+") "); } catch (sqlexception e1) {// todo auto-generated catch block e1.printstacktrace (); } goodnum ++; addgoods (); setnametext.setText (""); setPricetext.setText (""); // showout = "nama dagang:"+setnametext.getText ()+"/t"+"harga:"+setPricetext.getText ()+"/n"; //inputArea.Append(showout); }} if (e.getSource () == cancelbut) {if (goodsnum> 0) {goodsnum--; String deleteName = goods.name [goodsnum]; String deletePrice = goods.price [goodsnum] .toString (); //System.out.println(deleteName); / * * Hapus elemen dalam database * */ string sql = "Hapus dari Goods_info Where Name = '"+Deletename+"' dan Price = '"+DeletePrice+"'"; coba {stmt.executeUpdate (sql); } catch (sqlexception e1) {// todo auto-generated catch block e1.printstacktrace (); } // koneksi con = dbManager .getConnection () ;; // disiapkan ps = con.preparestatement (sql); addgoods (); }} if (e.getSource () == returnbut1) {LoginWin.setVisible (true); magwin.setVisible (false); } / * * Respons acara antarmuka pengguna * * / if (e.getSource () == returnBut2) {loginwin.setVisible (true); userwin.setVisible (false); } if (e.getSource () == SubmitBuy) {if (! showbuynumText.getText (). Equals ("")) {buycount [GoodsComBox.GetSelectedIndEndex ()] = float.parsefloat (showBuyNumText.gettext ()); String contentItem = ""; Float summon = float.parsefloat (showbuynumtext.getText ())*(float) goods.price [goodscombox.getSelectedIndex ()]; ContentItem = "Nama Dagang:"+Goods.name [GoodsComBox.GetSelectedIndex ()]+""+"Harga Unit:"+Goods.Price [GoodsComBox.GetSelectedIndex ()]. ToString ()+""+"Kuantitas Pembelian:"+SHOWBUYNUMTEXT.Gettext ()+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"+"Total Price:" ""). ""+""+"" Total Price: ""). buyitem.addelement (ContentItem); // buyitem [buynum] = contentItem; buynum ++; chooselist.removeall (); choicelist.setListData (buyitem); Summoney+= Summon; } else {joptionpane.showmessageDialog (magwin, "jumlah pembelian tidak bisa kosong", "peringatan", joptionpane.plain_message); }} if (e.getSource () == deleteBuyBut) {if (choicelist.getSelectedValue () == null) {jOptionPane.showmessageDialog (magwin, "tidak ada item yang akan dihapus lebih dipilih", "peringatan", joptionpane.plainpane.plain_plain_prain_spage. } else if (buynum> 0) {int i = choiceList.getSelectedIndex (); String selectItem = buyitem.get (i); //System.out.println(selectitem); String deletePrice = ""; untuk (int j = 0; j <sectitem.length ()-3; j ++) {// system.out.println (selectItem.substring (j, j+3)); if (selectItem.substring (j, j+3) .Equals ("Total harga:")) {deletePrice = selectItem.substring (j+3, selectItem.length ()); System.out.println (deletePrice); Summoney- = float.parsefloat (deletePrice); merusak; }} buyitem.remove (i); choicelist.removeall (); choicelist.setListData (buyitem); choicelist.validate (); buynum--; } else {joptionpane.showmessageDialog (magwin, "keranjang belanja kosong, tidak dapat dihapus", "peringatan", joptionpane.plain_message); }} if (e.getSource () == countbut) {// summoney untuk (int i = 0; i <buyitem.size (); i ++) {string str = buyitem.get (i) .substring (0, 2); if (str.Equals ("Total Harga")) {buyitem.remove (i); }} buyitem.addelement ("Harga Total:"+Summoney.ToString ()); choicelist.removeall (); choicelist.setListData (buyitem); choicelist.validate (); }} private void addGoods () {if (! inputArea.getText (). Equals ("")) inputArea.setText (""); // TODO Metode yang dihasilkan otomatis Stub untuk (int i = 0; i <goodsnum; i ++) {string pijat = "nama dagang:"+goods.name [i]+"/t"+"harga:"+goods.price [i] .toString ()+"/n"; inputArea. Lampiran (pijat); }}} kelas ManageWindow memperluas jframe {ManageWindow (string title) {super (judul); }} class userWindow memperluas jframe {userWindow (string title) {super (judul); }}Hapus bagian basis data yang relevan dan jalankan di komputer Anda!
Tangkapan layar terkait:
Antarmuka Administrator:
Antarmuka pengguna:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.