Use o idioma java para escrever um programa que simula a função de liquidação de compras de um supermercado online. Exige que o programa tenha uma interface gráfica do usuário após a execução, o que permite que os usuários digitem informações sobre vários produtos adquiridos e, finalmente, forneçam a lista de compras do usuário e o preço total.
Análise de requisitos:
1. Administrador adiciona produtos e seus preços
2. Informações sobre pedidos de impressão e código de pedido de liquidação Ao comprar produtos por usuários:
/ * * Criador: Zhang Junqiang * Tempo: 2016/5/15 * */pacote Salesys; importar java.awt.*; importar java.awt.event.*; importar java.util.Vector; importar javax.swing.*; importar java.sql.*; classe bens {public string [] nome; Price Public Float []; Bens () {name = new String [100]; Preço = novo flutuador [100]; }} classe pública Supermarket estende JFRame {public static void main (string [] args) lança sqlexception {mainwinow mainwin = new mainwinow ("checkout de compras on -line de supermercado"); mainwin.setDefaultCloseoperation (jframe.exit_on_close); Mainwin.setbounds (300, 300, 500, 400); mainwin.setVisible (true); Mainwin.setwin (Mainwin); mainwin.setMinWindowlayout (); }} classe Mainwinow estende JFrame {bens bens; Usuário privado do JButton; Gerente privado de JButton; Private Jlabel Loginlabel; Magwin Magwin de gerenciamento privado; private userwindow userwin; ouvinte privado Lis; Private Mainwinow Loginwin; Private Int Goodsnum; / * * Interface de configuração * */ private jlabel setNaisLabel; Privado Jlabel Setpricelabel; Private JTextField setNeteText; Private JTextfield setPriCeTEXT; private jbutton inputBut; textarea privada inputarea; Returnbut1 do JButton Private; JButton particular cancelbut; / * * Interface do usuário * */ vetor privado <string> compra; Float privado [] BuyCount; Private int Buynum; Private JCOMBOBOX BOTSCOMBOX; JButton privado retornbut2; Private Jlabel ChoiceGoodlabel; Significador privado de Jlabel; Significador privado JTextfield; Mostragem privada textarea; Showbuynum privado de Jlabel; Private JTextField ShowbuynumText; JButton privado submmitbuy; JButton privado DeleteBuybut; Choicelista privado da JLIST; JButton privado, condebut; Float privado Summoney; / *** Importação de banco de dados*/ instrução stmt; Mainwinow (string winname) lança sqlexception {super (winname); bensnum = 0; buynum = 0; Summoney = (Float) 0; bens = new bens (); usuário = novo jbutton ("Eu sou um usuário"); gerente = novo jbutton ("Eu sou um administrador"); loginlabel = new jlabel ("Selecione a função!"); Magwin = new ManageWindow ("Set Product"); Magwin.setbounds (300, 300, 500, 400); magwin.setDefaultCloseoperation (do_nothing_on_close); userwin = new userwindow ("Bem -vindo à compra"); userwin.setbounds (300, 300, 500, 400); userwin.setDefaultCloseoperation (do_nothing_on_close); lis = novo ouvinte (); / * * Definir a inicialização da interface * */ setnouselabel = new jlabel ("nome comercial:"); setpricelabel = new jlabel ("preço:"); setnameText = new JTextField (5); setPriceText = new JTextfield (5); inputBut = new jbutton ("confirmar para adicionar"); inputarea = new textarea (); returnbut1 = new jbutton ("return"); cancelbut = new jbutton ("retrair add"); / * * Inicialização da interface do usuário * */ bensCombox = new JCombobox (); returnbut2 = new jbutton ("return"); ChoiceGoodLabel = new Jlabel ("Selecione Produto:"); SlighPRICELABEL = new Jlabel ("Price"); sthlighPrice = new JTextfield (5); showChoice = new textarea (); showbuynum = new jlabel ("Quantidade de compra:"); showbuynumText = new jtextfield (5); submitbuy = new jbutton ("Confirmar compra"); DeleteBuybut = New JButton ("Ordem de exclusão"); contagembut = novo jbutton ("liquidação de pedidos"); Choicelist = new JList (); BuyItem = new Vector <String> (); BuyCount = novo float [100]; / * * Banco de dados import * */ try {class.ForName ("com.mysql.jdbc.driver"); } catch (classNotFoundException e) {// TODO BLOCO DE CATAGEM AUTOMENTADO E.PRINTSTACKTRACE (); } String url = "jdbc: mysql: // localhost: 3306/dispositivo"; String user = "root"; String senha = "ZJQ1314520"; Conexão con = driverManager.getConnection (URL, usuário, senha); stmt = con.createstatement (); / * * Exportação de dados do banco de dados * */ importaSql (); } public void importSql () lança sqLexception {int i = 1; // TODO Método GOERADO AUTO GENERADO RESULTO DE RESULTO DE RESULTADO = STMT.EXECUTEQUERY ("Selecione o nome, preço de bens_info"); while (result.Next ()) {Goods.name [i-1] = resultado.getString (1); goods.price [i-1] = float.parsefloat (resultado.getString (2)); i ++; } bensnum = i-1; } public void setWin (mainwinow w) {loginwin = w; } public void setMinWindowlayout () {contêiner logincon = new container (); Logincon.setLayout (new FlowLayout ()); logincon.add (gerente); logincon.add (usuário); gerente.addactionListener (LIS); user.addactionListener (LIS); this.setLayout (new BorderLayout ()); this.add (Loginlabel, borderlayout.north); this.add (Logincon, borderlayout.center); this.validate (); / * * Defina o layout da interface * */ magwin.setLayout (new FlowLayout ()); magwin.add (setnaislabel); 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); / * * Layout da interface do usuário * */ userwin.setLayout (new BorderLayout ()); Contêiner userCon = new container (); userCon.setLayout (new FlowLayout ()); UserCon.add (ChoicegoodLabel); UserCon.add (BOTSCOMBOX); UserCon.Add (Slighitelabel); UserCon.Add (Smhign); UserCon.add (Showbuynum); UserCon.add (ShowbuynumText); UserCon.add (submmitbuy); userwin.add (UserCon, borderlayout.north); //choicelist.setListData(goods.name); userwin.add (Choicelist, borderlayout.center); userwin.add (novo jscrollPane (Choicelist)); Contêiner butcon = new container (); mascon.setLayout (new FlowLayout ()); mascon.add (DeleteBuybut); mascon.add (contagembut); butcon.add (returnbut2); userwin.add (butcon, borderlayout.south); benscombox.additemListener (new ItemListener () {@Override public void ItemStateChanged (ItemEvent e) {// TODO Método Auto-Gerado Stub Int I = benscombox.getSelectedIndex (); if (i> = 0) ShowPrice.sette.; returnbut2.addactionListener (LIS); submitbuy.addactionListener (LIS); Deletebuybut.addactionListener (LIS); CountBut.addactionListener (LIS); } private void addComboxItem () {// TODO Method Auto-Gerated Method Stub para (int i = 0; i <bensnum; i ++) {bogscombox.additem (Goods.name [i]); }} classe O ouvinte implementa o ActionListener {@Override public void ActionPerformed (ActionEvent E) {// TODO Auto-Gerated Method Stub if (e.getSource () == Manager) {addGoods (); loginwin.setvisible (false); magwin.setvisible (true); } if (e.getSource () == User) {loginwin.setVisible (false); userwin.setVisible (true); benscombox.removealLitems (); addComboxItem (); } if (e.getSource () == inputBut) {// string showout = ""; if (setnameText.getText (). Equals ("") || setPriceText.getText (). Equals ("" ")) {JoptionPane.showMessagedialog (Magwin," sem itens sobressalentes! "," Warning ", joptionPane.plain_message); } else {goods.name [bensnum] = setNeText.getText (); Goods.price [bensnum] = float.parsefloat (setPriceText.getText ()); tente { / * * gravar no banco de dados * * / stmt.executeUpdate ("Inserir em bens_info (nome, preço) valores ('"+goods.name [bensnum]+"', '"+(float) Goods.price [bensnum]+"')); } catch (sqLexception e1) {// TODO BLOCO DE CAPAGEM AUTOGERATION E1.PRINTSTACKTRACE (); } bensnum ++; addgoods (); setnametext.settext (""); setPRICETEXT.SETTEXT (""); // showout = "Nome da negociação:"+setNeText.getText ()+"/t"+"preço:"+setPriceText.getText ()+"/n"; //inputarea.append(Showout); }} if (e.getSource () == cancelbut) {if (bensnum> 0) {bensnum--; String deletename = Goods.name [bensnum]; String DeLetePrice = Goods.price [bensnum] .ToString (); //System.out.println(deleteName); / * * Exclua elementos no banco de dados * */ string sql = "Exclua de bens_info onde name = '"+deletename+"' e price = '"+Deleteprice+"'"; tente {stmt.executeUpdate (SQL); } catch (sqLexception e1) {// TODO BLOCO DE CAPAGEM AUTOGERATION E1.PRINTSTACKTRACE (); } // conexão con = dbManager .getConnection () ;; // preparado estatamento ps = con.preparestatement (sql); addgoods (); }} if (e.getSource () == returnBut1) {loginwin.setVisible (true); magwin.setvisible (falso); } / * * Resposta do evento da interface do usuário * * / if (e.getSource () == returnBut2) {loginwin.setVisible (true); userwin.setVisible (false); } if (e.getSource () == submitbuy) {if (! showbuynumText.getText (). Equals ("" ")) {BuyCount [benscombox.getSelectedIndex ()] = float.parsefloat (showbuynumText.getText ()]; String contentItem = ""; Summon float = float.parsefloat (showbuynumText.getText ())*(float) goods.price [bourscombox.getSelectedIndex ()]; contentItem = "Nome comercial:"+Goods.name [benscombox.getSelectedIndex ()]+""+"Preço unitário:"+Goods.Price [BOTSCOMBOX.GETSELECTEDINDIndex ()]. BuyItem.adDelement (contentItem); // BuyItem [BuyNum] = contentItem; buynum ++; Chooselist.removeall (); Choicelist.SetListData (BuyItem); Summoney+= convocação; } else {JoptionPane.showMessagedialog (Magwin, "A quantidade de compra não pode estar vazia", "Warning", JoptionPane.Plain_Message); }} if (e.getSource () == DELETEBUYBUT) {if (CHOICEList.GetSelectedValue () == null) {JoptionPane.showMessagedialog (magwin, "nenhum item a ser excluído é selecionado", "Aviso", 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 ("preço total:")) {deleteprice = selectItem.substring (j+3, selectItem.Length ()); System.out.println (DeletePrice); Summoney- = float.parsefloat (DeletePrice); quebrar; }} buyItem.remove (i); CHOICELIST.REMOVEALL (); Choicelist.SetListData (BuyItem); Choicelist.Validate (); Buynum--; } else {JoptionPane.showMessagedialog (Magwin, "O carrinho de compras está vazio, não pode ser excluído", "Aviso", 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 ("Preço Total")) {BuyItem.Remove (i); }} BuyItem.adDelement ("Preço total:"+Summoney.toString ()); CHOICELIST.REMOVEALL (); Choicelist.SetListData (BuyItem); Choicelist.Validate (); }} private void addGoods () {if (! inputarea.getText (). Equals ("")) inputAea.settext (""); // TODO Método Gerado automaticamente Stub para (int i = 0; i <bensNum; i ++) {String Massage = "Nome comercial:"+Goods.name [i]+"/t"+"Preço:"+Goods.price [i] .toString ()+"/n"; inputarea.append (massagem); }}} classe ManageWindow estende JFrame {ManageWindow (String title) {super (title); }} classe Userwindow estende JFrame {UserWindow (String title) {super (title); }}Exclua a peça relevante do banco de dados e execute -a no seu computador!
Capturas de tela relacionadas:
Interface do administrador:
Interface do usuário:
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.