Advertisement
Guest User

Z1_GUI_part3

a guest
Oct 24th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.16 KB | None | 0 0
  1. package projekt1;
  2.  
  3. // Temat 5.
  4. // W języku Java, utwórz klasę do przechowywania oraz GUI do wprowadzania danych
  5. // wektorów w przestrzeni dwuwymiarowej (nazwa wektora, współrzędne x oraz y).
  6. // Projekt -> Properties -> Library -> Add Jar -> JDBC (mysql-connector-java*.jar //XAMPP
  7. import java.awt.BorderLayout;
  8. import java.awt.Container;
  9. import java.awt.Dimension;
  10. import java.awt.FlowLayout;
  11. import java.awt.GraphicsConfiguration;
  12. import java.awt.GridLayout;
  13. import java.awt.event.ActionEvent;
  14. import java.awt.event.ActionListener;
  15. import java.sql.Connection;
  16. import java.sql.DriverManager;
  17. import java.sql.ResultSet;
  18. import java.sql.SQLException;
  19. import java.sql.Statement;
  20. import java.util.ArrayList;
  21. import java.util.Vector;
  22. import javax.swing.*;
  23. import javax.swing.table.DefaultTableModel;
  24. import javax.xml.parsers.DocumentBuilder;
  25. import javax.xml.parsers.DocumentBuilderFactory;
  26. import javax.xml.transform.Result;
  27. import javax.xml.transform.Source;
  28. import javax.xml.transform.Transformer;
  29. import javax.xml.transform.TransformerFactory;
  30. import javax.xml.transform.dom.DOMSource;
  31. import javax.xml.transform.stream.StreamResult;
  32. import org.w3c.dom.*;
  33.  
  34. public class Projekt1 extends JFrame implements ActionListener {
  35.  
  36.     JPanel panelGlowny, panelDanych, panelPrzyciskow, panelTabeli;
  37.     JLabel et1, et2, et3;
  38.     DefaultTableModel modelTabeli;
  39.     JTable Tabela;
  40.     JTextField pole1, pole2, pole3;
  41.     JButton przycisk1, przycisk_wczytaj, przycisk_zapisz;
  42.     Container zawartosc;
  43.     ArrayList<Wektor> kolekcja;
  44.     JMenuBar pasek;
  45.     JMenu menu1, menu2;
  46.     JMenuItem op1, op2, op3;
  47.  
  48.     public Projekt1(GraphicsConfiguration gc) {
  49.  
  50.         super(gc);
  51.  
  52.     }
  53.  
  54.     public Projekt1() {
  55.         super("Aplikacja");
  56.         this.setSize(800, 600);
  57.         this.zawartosc = this.getContentPane();
  58.  
  59.         this.panelGlowny = new JPanel(new BorderLayout());
  60.  
  61.         //Tworzenie panelu Danych
  62.         this.panelDanych = new JPanel(new GridLayout(3, 2));
  63.         this.et1 = new JLabel("Nazwa: ");
  64.         this.et2 = new JLabel("x: ");
  65.         this.et3 = new JLabel("y: ");
  66.         this.pole1 = new JTextField();
  67.         pole1.setSize(50, 200);
  68.         this.pole2 = new JTextField();
  69.         this.pole3 = new JTextField();
  70.         this.panelDanych.add(this.et1);
  71.         this.panelDanych.add(this.pole1);
  72.         this.panelDanych.add(this.et2);
  73.         this.panelDanych.add(this.pole2);
  74.         this.panelDanych.add(this.et3);
  75.         this.panelDanych.add(this.pole3);
  76.         this.panelGlowny.add(this.panelDanych, BorderLayout.WEST);
  77.  
  78.         //tworzenie Menu
  79.         this.pasek = new JMenuBar();
  80.         this.menu1 = new JMenu("Baza Danych");
  81.         this.op1 = new JMenuItem("Wczytaj");
  82.         this.op1.addActionListener(this);
  83.         this.menu1.add(op1);
  84.         this.op2 = new JMenuItem("Opcja 2");
  85.         this.op2.addActionListener(this);
  86.         this.menu1.add(op2);
  87.         this.menu2 = new JMenu("Menu 2");
  88.         this.op3 = new JMenuItem("Opcja 3");
  89.         this.op3.addActionListener(this);
  90.         this.menu2.add(op3);
  91.         this.pasek.add(menu1);
  92.         this.pasek.add(menu2);
  93.         this.setJMenuBar(pasek);
  94.  
  95.         //tworzenie panelu Przycisków i zawartosci w nim
  96.         this.panelPrzyciskow = new JPanel(new FlowLayout());
  97.  
  98.         this.przycisk_wczytaj = new JButton("WCZYTAJ");
  99.         this.przycisk_wczytaj.addActionListener(this);
  100.         this.przycisk_zapisz = new JButton("ZAPISZ");
  101.         this.przycisk_zapisz.addActionListener(this);
  102.         this.przycisk1 = new JButton("ENTER");
  103.         this.przycisk1.addActionListener(this);
  104.  
  105.         this.panelPrzyciskow.add(przycisk_wczytaj);
  106.         this.panelPrzyciskow.add(przycisk_zapisz);
  107.         this.panelPrzyciskow.add(przycisk1);
  108.  
  109.         this.panelGlowny.add(this.panelPrzyciskow, BorderLayout.SOUTH);
  110.  
  111.         //tworzenie panelu z tablica
  112.         this.panelTabeli = new JPanel(new BorderLayout());
  113.  
  114.         this.modelTabeli = new DefaultTableModel();
  115.         this.modelTabeli.addColumn("Nazwa wektora");
  116.         this.modelTabeli.addColumn("Współrzędna x: ");
  117.         this.modelTabeli.addColumn("Współrzędna y: ");
  118.  
  119.         // this.modelTabeli.addRow(new Vector());
  120.         //this.modelTabeli.addRow(new Vector());
  121.         this.Tabela = new JTable(this.modelTabeli);
  122.  
  123.         this.panelTabeli.add(new JScrollPane(this.Tabela), BorderLayout.NORTH);
  124.  
  125.         //  this.panelTabeli.add(this.Tabela, BorderLayout.CENTER);
  126.         this.panelGlowny.add(this.panelTabeli, BorderLayout.CENTER);
  127.  
  128.         this.zawartosc.add(this.panelGlowny);
  129.  
  130.         this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  131.         this.setVisible(true);
  132.         kolekcja = new ArrayList<Wektor>();
  133.     }
  134.  
  135.     public static void main(String[] args) {
  136.  
  137.         Projekt1 projekt1 = new Projekt1();
  138.  
  139.     }
  140.  
  141.     @Override
  142.     public void actionPerformed(ActionEvent e) {
  143.  
  144.         if (e.getActionCommand().equals("Wczytaj")) {
  145.             Connection polaczenie;
  146.             try {
  147.                 Class.forName("com.mysql.jdbc.Driver").newInstance();
  148.                 polaczenie = DriverManager.getConnection("jdbc:mysql://localhost/wektory1", "root", "");
  149.                 System.out.println(polaczenie);
  150.                 Statement instrukcja = polaczenie.createStatement();
  151.                 ResultSet wynik = instrukcja.executeQuery("SELECT * FROM wektory");
  152.                 while (wynik.next()) {
  153.                                      
  154.                     Object[] dane = new Object[3];
  155.                     dane[0] = wynik.getObject("Nazwa");
  156.                     dane[1] = wynik.getObject("x");
  157.                     dane[2] = wynik.getObject("y");
  158.                     this.modelTabeli.addRow(dane);
  159.                                        
  160.  
  161.                 }
  162.  
  163.                 polaczenie.close();
  164.  
  165.             } catch (InstantiationException ex) {
  166.                 ex.printStackTrace();
  167.             } catch (IllegalAccessException ex) {
  168.                 ex.printStackTrace();
  169.             } catch (ClassNotFoundException ex) {
  170.                 ex.printStackTrace();
  171.             } catch (SQLException ex) {
  172.                 ex.printStackTrace();
  173.             }
  174.  
  175.         }
  176.  
  177.         if (e.getActionCommand().equals("Opcja 2")) {
  178.  
  179.         }
  180.  
  181.         if (e.getActionCommand().equals("Opcja 3")) {
  182.  
  183.         }
  184.  
  185.         if (e.getActionCommand().equals("ENTER")) {
  186.  
  187.             Wektor w = new Wektor(this.pole1.getText(),
  188.                     Integer.parseInt(this.pole2.getText()),
  189.                     Integer.parseInt(this.pole3.getText()));
  190.             kolekcja.add(w);
  191.             Object[] dane = new Object[3];
  192.             dane[0] = w.getNazwa();
  193.             dane[1] = w.getX();
  194.             dane[2] = w.getY();
  195.  
  196.             this.modelTabeli.addRow(dane);
  197.  
  198.         }
  199.         if (e.getActionCommand().equals("WCZYTAJ")) {
  200.  
  201.             try {
  202.  
  203.                 DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
  204.                 DocumentBuilder parser = fabr.newDocumentBuilder();
  205.                 Document dokument = parser.parse("C:\\Users\\student.INFORMATYKA\\Desktop\\test.xml");
  206.                 Element root = dokument.getDocumentElement();
  207.  
  208.                 NodeList wektory = root.getElementsByTagName("wektor");
  209.  
  210.                 for (int i = 0; i < wektory.getLength(); i++) {
  211.                     String nazwa = ((Element) wektory.item(i)).getAttribute("nazwa");
  212.                     int x = Integer.parseInt(((Element) wektory.item(i)).getAttribute("x"));
  213.                     int y = Integer.parseInt(((Element) wektory.item(i)).getAttribute("y"));
  214.  
  215.                     Wektor w = new Wektor(nazwa, x, y);
  216.                     kolekcja.add(w);
  217.                     Object[] dane = new Object[3];
  218.                     dane[0] = w.getNazwa();
  219.                     dane[1] = w.getX();
  220.                     dane[2] = w.getY();
  221.  
  222.                     this.modelTabeli.addRow(dane);
  223.  
  224.                 }
  225.  
  226.             } catch (Exception ex) {
  227.  
  228.             }
  229.  
  230.         }
  231.         if (e.getActionCommand().equals("ZAPISZ")) {
  232.  
  233.             try {
  234.                 DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
  235.                 DocumentBuilder parser = fabr.newDocumentBuilder();
  236.                 Document dokument = parser.newDocument();
  237.                 Element root = dokument.createElement("wektory");
  238.                 dokument.appendChild(root);
  239.  
  240.                 for (Wektor wektor : kolekcja) {
  241.                     Element k = dokument.createElement("wektor");
  242.                     k.setAttribute("nazwa", wektor.getNazwa());
  243.                     k.setAttribute("x", String.valueOf(wektor.getX()));
  244.                     k.setAttribute("y", String.valueOf(wektor.getY()));
  245.                     root.appendChild(k);
  246.                 }
  247.  
  248.                 Transformer przekszt = TransformerFactory.newInstance().newTransformer();
  249.                 Source zrodlo = new DOMSource(dokument);
  250.                 Result wyjscie = new StreamResult("C:\\Users\\student.INFORMATYKA\\Desktop\\test1.xml");
  251.                 przekszt.transform(zrodlo, wyjscie);
  252.  
  253.             } catch (Exception ex) {
  254.                 System.out.println("Wyjatek");
  255.             }
  256.  
  257.         }
  258.     }
  259.  
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement