Guest User

Untitled

a guest
Nov 26th, 2017
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.47 KB | None | 0 0
  1. package me.marcin.rosol;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Container;
  6. import java.awt.FlowLayout;
  7. import java.awt.GridLayout;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.sql.Connection;
  11. import java.sql.DriverManager;
  12. import java.sql.ResultSet;
  13. import java.sql.Statement;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16.  
  17. import javax.swing.JButton;
  18. import javax.swing.JFrame;
  19. import javax.swing.JLabel;
  20. import javax.swing.JPanel;
  21. import javax.swing.JRadioButton;
  22. import javax.swing.JScrollPane;
  23. import javax.swing.JTable;
  24. import javax.swing.JTextField;
  25. import javax.swing.table.DefaultTableModel;
  26. import javax.xml.parsers.DocumentBuilder;
  27. import javax.xml.parsers.DocumentBuilderFactory;
  28. import javax.xml.transform.Result;
  29. import javax.xml.transform.Source;
  30. import javax.xml.transform.Transformer;
  31. import javax.xml.transform.TransformerFactory;
  32. import javax.xml.transform.dom.DOMSource;
  33. import javax.xml.transform.stream.StreamResult;
  34.  
  35. import org.w3c.dom.Document;
  36. import org.w3c.dom.Element;
  37. import org.w3c.dom.NodeList;
  38. import org.hibernate.Session;
  39. import org.hibernate.SessionFactory;
  40. import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
  41. import org.hibernate.cfg.Configuration;
  42. import org.hibernate.service.ServiceRegistry;
  43.  
  44. public class Gui extends JFrame implements ActionListener{
  45.  
  46.      Container container;
  47.      
  48.      JPanel panelGlowny;
  49.      
  50.      JPanel panelPrzyciskow;
  51.      JPanel panelDanych;
  52.      JPanel panelTabeli;
  53.      JPanel panelRadio;
  54.      JPanel panelBazy;
  55.      
  56.      JPanel west;
  57.      JPanel center;
  58.      JPanel east;
  59.      
  60.       JLabel labelRodzaj;
  61.       JLabel labelWielkosc;
  62.       JLabel labelCena;
  63.      
  64.       JTextField pole1;
  65.       JTextField pole2;
  66.       JTextField pole3;
  67.      
  68.      JTable tabela;
  69.      
  70.      JButton przyciskDodaj;
  71.      JButton wczytajXML;
  72.      JButton zapiszXML;
  73.      JButton odczytBaza;
  74.      JButton zapisBaza;
  75.    
  76.      JRadioButton duza;
  77.      JRadioButton srednia;
  78.      JRadioButton mala;
  79.      
  80.      DefaultTableModel modelTabeli;
  81.      
  82.       ArrayList<Kawa> kolekcja;
  83.      
  84.     public Gui() {
  85.        
  86.         super("Kawiarnia");
  87.         setSize(500,630);
  88.         this.container = getContentPane();
  89.         this.kolekcja = new ArrayList();
  90.        
  91.         this.west = new JPanel(new FlowLayout());
  92.         this.center = new JPanel(new FlowLayout());
  93.         this.east = new JPanel(new FlowLayout());
  94.        
  95.         this.panelGlowny = new JPanel(new BorderLayout());
  96.         this.panelTabeli = new JPanel(new FlowLayout());
  97.         this.panelDanych = new JPanel(new GridLayout(3, 2));
  98.         this.panelRadio = new JPanel(new GridLayout(3,1));
  99.         this.panelBazy = new JPanel(new GridLayout(4,1));
  100.         this.panelPrzyciskow = new JPanel(new FlowLayout());
  101.        
  102.        
  103.         //tworzenie i nadanie napisow do radio button
  104.         this.duza = new JRadioButton("Duza", true);
  105.         this.srednia = new JRadioButton("Srednia", true);
  106.         this.mala = new JRadioButton("Mala", true);
  107.         this.duza.addActionListener(this);
  108.         this.srednia.addActionListener(this);
  109.         this.mala.addActionListener(this);
  110.        
  111.         this.panelRadio.add(this.duza);
  112.         this.panelRadio.add(this.srednia);
  113.         this.panelRadio.add(this.mala);
  114.         this.center.add(this.panelRadio);
  115.        
  116.        
  117.        
  118.         //tworzenie i nadanie napisow do przycisku
  119.         this.zapiszXML = new JButton("zapis do xml");
  120.         this.wczytajXML = new JButton("wczytaj xml");
  121.         this.przyciskDodaj = new JButton("dodaj");
  122.         this.odczytBaza = new JButton("Odczyt z bazy");
  123.         this.zapisBaza = new JButton("Zapis do bazy"); 
  124.        
  125.         this.panelPrzyciskow.add(this.przyciskDodaj);
  126.        
  127.         this.panelBazy.add(this.odczytBaza);
  128.         this.panelBazy.add(this.zapisBaza);
  129.         this.panelBazy.add(this.zapiszXML);
  130.         this.panelBazy.add(this.wczytajXML);
  131.         this.east.add(this.panelBazy);
  132.        
  133.         this.labelRodzaj = new JLabel("Rodzaj");
  134.         this.labelWielkosc = new JLabel("Wielkosc");
  135.         this.labelCena = new JLabel("cena");
  136.        
  137.         //dodawanie tabeli
  138.         this.modelTabeli = new DefaultTableModel();//model tabeli
  139.         this.modelTabeli.addColumn("Rodzaj");
  140.         this.modelTabeli.addColumn("Rozmiar");
  141.         this.modelTabeli.addColumn("Cena");
  142.        
  143.         //tworzenie pola tekstowego
  144.         this.pole1 = new JTextField();
  145.         this.pole2  = new JTextField();
  146.         this.pole3 = new JTextField();
  147.        
  148.         //dodawanie labelow i pola tekstowego
  149.         this.panelDanych.add(this.labelRodzaj);
  150.         this.panelDanych.add(this.pole1);
  151.         this.panelDanych.add(this.labelWielkosc);
  152.         this.panelDanych.add(this.pole2);
  153.         this.panelDanych.add(this.labelCena);
  154.         this.panelDanych.add(this.pole3);
  155.         this.west.add(this.panelDanych);
  156.        
  157.        
  158.        
  159.         this.tabela = new JTable(this.modelTabeli);
  160.         this.panelTabeli.add(new JScrollPane(this.tabela));
  161.        
  162.         this.przyciskDodaj.addActionListener(this);
  163.         this.wczytajXML.addActionListener(this);
  164.         this.zapiszXML.addActionListener(this);
  165.        
  166.         this.odczytBaza.addActionListener(this);
  167.         this.zapisBaza.addActionListener(this);
  168.     //  this.duza.addActionListener(this);
  169.        
  170.         this.panelGlowny.add(this.panelTabeli,"North");
  171.         this.panelGlowny.add(this.west, "West");
  172.         this.panelGlowny.add(this.center, "Center");
  173.         this.panelGlowny.add(this.east, "East");
  174.         this.panelGlowny.add(this.panelPrzyciskow, "South");
  175.        
  176.         this.container.add(this.panelGlowny);
  177.        
  178.         setDefaultCloseOperation(EXIT_ON_CLOSE);//zamyka aplikacje
  179.         setVisible(true);
  180.     }
  181.    
  182.     @Override
  183.     public void actionPerformed(ActionEvent e) {
  184.         if(e.getActionCommand().equalsIgnoreCase("dodaj")) {
  185.         dodaj();
  186.         }
  187.         if(e.getActionCommand().equalsIgnoreCase("wczytaj xml")) {
  188.             clear();
  189.             fileOpen();
  190.         }
  191.         if(e.getActionCommand().equalsIgnoreCase("zapis do xml")) {
  192.             fileSave();
  193.         }
  194.         if(e.getActionCommand().equalsIgnoreCase("zapis do bazy")) {
  195.             sqlSave();
  196.         }
  197.         if(e.getActionCommand().equalsIgnoreCase("odczyt z bazy")) {
  198.             sqlLoad();
  199.         }
  200.        
  201.     }
  202.    
  203.     private void dodaj() {
  204.  
  205.         Kawa k = new Kawa();
  206.         k.setRodzaj(this.pole1.getText());
  207.         k.setRozmiar(this.pole2.getText());
  208.         k.setCena(Float.valueOf(this.pole3.getText()));
  209.        
  210.         Object[] obiekt = new Object[3];
  211.         obiekt[0] = k.getRodzaj();
  212.         obiekt[1]=k.getRozmiar();
  213.         obiekt[2]=k.getCena();
  214.        
  215.         this.kolekcja.add(k);
  216.         this.modelTabeli.addRow(obiekt);
  217.        
  218.         this.pole1.setText("");
  219.         this.pole2.setText("");
  220.         this.pole3.setText("");
  221.     }
  222.  
  223.     private void clear() {
  224.         this.modelTabeli.setRowCount(0);
  225.         this.kolekcja.clear();
  226.     }
  227.     private void fileSave() {
  228.         System.out.println("zapis");
  229.         try
  230.         {
  231.           DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
  232.           DocumentBuilder parser = fabr.newDocumentBuilder();
  233.           Document dokument = parser.newDocument();
  234.          
  235.           Element root = dokument.createElement("ksiazki");
  236.           dokument.appendChild(root);
  237.           for (Kawa k : this.kolekcja)
  238.           {
  239.             Element ks = dokument.createElement("kawa");
  240.             ks.setAttribute("rodzaj", k.getRodzaj());
  241.             ks.setAttribute("wielkosc", k.getRozmiar());
  242.             ks.setAttribute("cena", String.valueOf(k.getCena()));
  243.             root.appendChild(ks);
  244.           }
  245.          
  246.           Transformer przekszt = TransformerFactory.newInstance().newTransformer();
  247.           Object zrodlo = new DOMSource(dokument);
  248.           Result wyjscie = new StreamResult("daneZapis.xml");
  249.           przekszt.transform((Source)zrodlo, wyjscie);
  250.         }
  251.         catch (Exception ex)
  252.         {
  253.             String msg = ex.getMessage();
  254.             if (msg == null) {
  255.                 msg = ex.getClass().getName();
  256.             }
  257.             System.out.println("Exception: " + msg);
  258.         }
  259.     }
  260.     private void fileOpen() {
  261.         try {
  262.             DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
  263.             DocumentBuilder parser = fabr.newDocumentBuilder();
  264.             Document dokument = parser.parse("wczytaj.xml");
  265.             Element root = dokument.getDocumentElement();
  266.             NodeList kawa = root.getElementsByTagName("kawa");
  267.            
  268.                 for(int i = 0; i < kawa.getLength(); i++) {
  269.                      
  270.                     String rodzaj = ((Element)kawa.item(i)).getAttribute("rodzaj");
  271.                     String wielkosc = ((Element)kawa.item(i)).getAttribute("wielkosc");
  272.                     float cena = Float.parseFloat(((Element)kawa.item(i)).getAttribute("cena"));
  273.                    
  274.                     if(duza.isSelected() == true && wielkosc.equalsIgnoreCase("duza")) {
  275.                         Kawa k = new Kawa(rodzaj, wielkosc, cena);
  276.                         Object[] dane = new Object[3];
  277.                         dane[0] = k.getRodzaj();
  278.                         dane[1] = k.getRozmiar();
  279.                         dane[2] = k.getCena();
  280.                         this.modelTabeli.addRow(dane);
  281.                         this.kolekcja.add(k);
  282.                     }
  283.                     if(srednia.isSelected() == true && wielkosc.equalsIgnoreCase("srednia")) {
  284.                         Kawa k = new Kawa(rodzaj, wielkosc, cena);
  285.                         Object[] dane = new Object[3];
  286.                         dane[0] = k.getRodzaj();
  287.                         dane[1] = k.getRozmiar();
  288.                         dane[2] = k.getCena();
  289.                         this.modelTabeli.addRow(dane);
  290.                         this.kolekcja.add(k);
  291.                     }
  292.                     if(mala.isSelected() == true && wielkosc.equalsIgnoreCase("mala")) {
  293.                         Kawa k = new Kawa(rodzaj, wielkosc, cena);
  294.                         Object[] dane = new Object[3];
  295.                         dane[0] = k.getRodzaj();
  296.                         dane[1] = k.getRozmiar();
  297.                         dane[2] = k.getCena();
  298.                         this.modelTabeli.addRow(dane);
  299.                         this.kolekcja.add(k);
  300.                     }
  301.                    
  302.                 }
  303.                
  304.             System.out.println("klik");
  305.         }catch (Exception ex) {
  306.             String msg = ex.getMessage();
  307.             if (msg == null) {
  308.                 msg = ex.getClass().getName();
  309.             }
  310.             System.out.println("Exception: " + msg);
  311.         }
  312.     }
  313.    
  314.     private void sqlSave() {
  315.           System.out.println("sql save");
  316.           Connection polaczenie;
  317.           try {
  318.               Class.forName("com.mysql.jdbc.Driver").newInstance();
  319.               polaczenie = DriverManager.getConnection("jdbc:mysql://localhost/Kawka", "root", "");
  320.              
  321.               Statement instrukcja = polaczenie.createStatement();
  322.               instrukcja.executeUpdate("DELETE FROM KAWA");
  323.              
  324.               for (Kawa k: kolekcja)
  325.               {
  326.                   String sql ="INSERT INTO KAWA SET ";
  327.                   sql+="WIELKOSC='"+k.getRozmiar()+"', ";
  328.                   sql+="RODZAJ='"+k.getRodzaj()+"', ";
  329.                   sql+="CENA='"+k.getCena()+"'";
  330.                  
  331.                           System.out.println(sql);
  332.                           instrukcja.executeUpdate(sql);
  333.               }
  334.               polaczenie.close();
  335.           }catch(Exception ex) {
  336.               String msg = ex.getMessage();
  337.             if (msg == null) {
  338.                 msg = ex.getClass().getName();
  339.             }
  340.             System.out.println("Exception: " + msg);
  341.             }
  342.          
  343.       }
  344.     private void sqlLoad() {
  345.             Connection polaczenie;
  346.             try {
  347.                 Class.forName("com.mysql.jdbc.Driver").newInstance();
  348.                 polaczenie = DriverManager.getConnection("jdbc:mysql://localhost/Kawka", "root", "");//TUTAJ POPRAWIC URL
  349.                 System.out.println(polaczenie);
  350.                
  351.                 Statement instrukcja = polaczenie.createStatement();
  352.                 //ResultSet wynik = instrukcja.executeQuery("SELECT * FROM KAWA");
  353.                 ResultSet wynik =instrukcja.executeQuery("SELECT * FROM KAWA");
  354.                 if(duza.isSelected() == true) {
  355.                      wynik = instrukcja.executeQuery("SELECT * FROM KAWA WHERE WIELKOSC = 'duza'");
  356.                      while (wynik.next()) {
  357.                     Object[] dane = new Object[3];
  358.                     dane[0] = wynik.getObject("RODZAJ");
  359.                     dane[1] = wynik.getObject("WIELKOSC");
  360.                     dane[2] = wynik.getObject("CENA");
  361.                     this.modelTabeli.addRow(dane);
  362.                     Kawa k= new Kawa((String)dane[0],(String)dane[1],(float)dane[2]);
  363.                     kolekcja.add(k);
  364.                      }
  365.                 }
  366.                 if(srednia.isSelected() == true) {
  367.                      wynik = instrukcja.executeQuery("SELECT * FROM KAWA WHERE WIELKOSC = 'srednia'");
  368.                      while (wynik.next()) {
  369.                     Object[] dane = new Object[3];
  370.                     dane[0] = wynik.getObject("RODZAJ");
  371.                     dane[1] = wynik.getObject("WIELKOSC");
  372.                     dane[2] = wynik.getObject("CENA");
  373.                     this.modelTabeli.addRow(dane);
  374.                     Kawa k= new Kawa((String)dane[0],(String)dane[1],(float)dane[2]);
  375.                     kolekcja.add(k);
  376.                      }
  377.                 }
  378.                 if(mala.isSelected() == true) {
  379.                      wynik = instrukcja.executeQuery("SELECT * FROM KAWA WHERE WIELKOSC = 'mala'");
  380.                      while (wynik.next()) {
  381.                     Object[] dane = new Object[3];
  382.                     dane[0] = wynik.getObject("RODZAJ");
  383.                     dane[1] = wynik.getObject("WIELKOSC");
  384.                     dane[2] = wynik.getObject("CENA");
  385.                     this.modelTabeli.addRow(dane);
  386.                     Kawa k= new Kawa((String)dane[0],(String)dane[1],(float)dane[2]);
  387.                     kolekcja.add(k);
  388.                      }
  389.                 }
  390.                
  391.                
  392.                 polaczenie.close();
  393.             }catch(Exception ex) {
  394.                 String msg = ex.getMessage();
  395.                 if (msg == null) {
  396.                     msg = ex.getClass().getName();
  397.                 }
  398.                 System.out.println("Exception: " + msg);
  399.             }
  400.            
  401.            
  402.       }
  403.    
  404. }
Add Comment
Please, Sign In to add comment