Advertisement
Guest User

Untitled

a guest
Feb 21st, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.11 KB | None | 0 0
  1. package bazaddx;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.EventQueue;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.*;
  9. import javax.swing.JPanel;
  10. import javax.swing.border.EmptyBorder;
  11. import javax.swing.JTable;
  12. import javax.swing.BoxLayout;
  13. import javax.swing.table.DefaultTableModel;
  14.  
  15. import java.sql.Connection;
  16. import java.sql.DriverManager;
  17. import java.sql.PreparedStatement;
  18. import java.sql.ResultSet;
  19. import java.sql.ResultSetMetaData;
  20. import java.sql.SQLException;
  21. import java.sql.Statement;
  22. import java.text.ParseException;
  23. import java.text.SimpleDateFormat;
  24. import java.util.Vector;
  25.  
  26. public class PietriWager extends JFrame implements ActionListener {
  27.  
  28.     private JPanel contentPane;
  29.     private JScrollPane scrollPane;
  30.     private final ButtonGroup buttonGroup = new ButtonGroup();
  31.     private String querry;
  32.     private ResultSet resultSet;
  33.    
  34.     private JRadioButtonMenuItem rdbtnmntmStatystykiGraczy;
  35.     private JRadioButtonMenuItem mntmZawodnicy;
  36.     private JRadioButtonMenuItem mntmPierwszySkad;
  37.     private JRadioButtonMenuItem mntmUbiege;
  38.     private JRadioButtonMenuItem mntmNadchodzce;
  39.    
  40.     JButton btnDodaj;
  41.     JButton btnUsuZaznaczony;
  42.    
  43.     private static Statement newStatement;
  44.     private DefaultTableModel model;
  45.     private JTable table;
  46.      
  47.     private Table zawodnicy = new Table(0, "zawodnicy");
  48.     private Table meczeubiegle = new Table(0, "meczeubiegle");
  49.     private Table meczenadchodzace = new Table(0, "meczenadchodzace");
  50.     private Table pierwszysklad = new Table(0, "pierwszysklad");
  51.     private Table statystyki = new Table(0, "statystyki");
  52.    
  53.    
  54.     private String actualTable = null;
  55.     /**
  56.      * Launch the application.
  57.      * @throws ParseException
  58.      */
  59.     public static void main(String[] args)  throws ClassNotFoundException, ParseException {
  60.         Class.forName("org.sqlite.JDBC");
  61.        
  62.         Connection connection = null;
  63.        
  64.        
  65.        
  66.         try {
  67.             connection = DriverManager.getConnection("jdbc:sqlite:sample.db");
  68.             newStatement  = connection.createStatement();
  69.             //newStatement.setQueryTimeout(30);  // set timeout to 30 sec.
  70.             newStatement.executeUpdate("DROP TABLE zawodnicy");
  71.             newStatement.executeUpdate("DROP TABLE meczeubiegle");
  72.             newStatement.executeUpdate("DROP TABLE meczenadchodzace");
  73.             newStatement.executeUpdate("DROP TABLE pierwszysklad");
  74.             newStatement.executeUpdate("DROP TABLE statystyki");
  75.         }
  76.         catch (SQLException e1) {
  77.             // TODO Auto-generated catch block
  78.             JOptionPane.showMessageDialog(null, e1.getMessage());
  79.         }
  80.         connection = null;
  81.         try{
  82.             connection = DriverManager.getConnection("jdbc:sqlite:sample.db");
  83.             newStatement = connection.createStatement();
  84.             newStatement.setQueryTimeout(30);
  85.             newStatement.executeUpdate("CREATE TABLE IF NOT EXISTS pierwszysklad (id INTEGER, rozgrywajacy int, obronca int, niski_skrzydlowy int, silny_skrzydlowy int, center int)");
  86.             newStatement.executeUpdate("CREATE TABLE IF NOT EXISTS meczenadchodzace (id INTEGER, data Date, druzyna String)");
  87.             newStatement.executeUpdate("CREATE TABLE IF NOT EXISTS meczeubiegle (id INTEGER, data Date, wynik String, drużyna String)");
  88.             newStatement.executeUpdate("CREATE TABLE IF NOT EXISTS statystyki (id INTEGER, pkt int, asysty int, odbiory int, zbiorki int)");
  89.             newStatement.executeUpdate("CREATE TABLE IF NOT EXISTS zawodnicy (id INTEGER, imie STRING, nazwisko String)");
  90.            
  91.  
  92.         } catch (SQLException e2) {
  93.             // TODO Auto-generated catch block
  94.             JOptionPane.showMessageDialog(null, e2.getMessage());
  95.         }
  96.         try {
  97.             connection = DriverManager.getConnection("jdbc:sqlite:sample.db");
  98.             Statement stmt = connection.createStatement();
  99.             SimpleDateFormat dt = new SimpleDateFormat("dd-MM-yyyy'T'HH:mm");
  100.             ///////////////////////////////////////////////////////////////////////MECZE UBIEGLE
  101.             String du [] = {"20-02-2016T20:00","20-02-2016T19:45","15-02-2016T18:45","10-02-2016T22:00","18-02-2016T21:30"};
  102.             String druzynau [] = {"New Jersey Bets","Milwaukee Bugs","Memphis TeddyBears","Detroit Poverty","Chicago Balls"};
  103.             String wynik [] = {"99:90","98:15","120:80","88:90","100:101"};
  104.             for(int i=0;i<du.length;i++)
  105.                 stmt.executeUpdate("INSERT INTO meczeubiegle values('"+(i+1)+"', '"+druzynau[i]+"', '"+wynik[i]+"', '"+dt.parse(du[i])+"')");
  106.             ///////////////////////////////////////////////////////////////////////MECZE NADCHODZACE
  107.           String dn [] =  {"31-03-2016T20:00","22-03-2016T21:00","20-03-2016T20:30","14-03-2016T22:45","18-03-2016T19:10"};
  108.           String druzynan [] = {"New Orleans Penicillins", "Cleveland Caravels", "Golden State Peacekeepers", "Minnesota Bunnies", "Los Angeles Ponds"};
  109.           for(int i=0;i<dn.length;i++)
  110.                stmt.executeUpdate("INSERT INTO meczenadchodzace values(' "+(i+1)+"', '"+dt.parse(dn[i])+"','"+druzynan[i]+"')");  
  111.         ////////////////////////////////////////////////////////////////////////////// ZAWODNICY
  112.           String imie [] = {"Peter","Pallar","William","Paul","LeBron"};
  113.           String nazwisko [] = {"Parker","Pawnson","Szejkspir","CP3","James-Błąd"};
  114.           for(int i=0;i<imie.length;i++)
  115.               stmt.executeUpdate("INSERT INTO zawodnicy values(' "+(i+1)+"', '"+imie[i]+"', '"+nazwisko[i]+"')");  
  116.         ////////////////////////////////////////////////////////////////////////////// STATYSTYKI
  117.           int punkty[] = {36,12,15,18,8};
  118.           int odbiory[] = {1,0,0,2,9};
  119.           int asysty[] = {5,3,8,4,5};
  120.           int zbiorki[] = {1,2,4,0,12};
  121.           for(int i=0;i<imie.length;i++)
  122.               stmt.executeUpdate("INSERT INTO statystyki values(' "+(i+1)+"', '"+punkty[i]+"', '"+asysty[i]+"', '"+odbiory[i]+"', '"+zbiorki[i]+"')");
  123.           ///////////////////////////////////////////////////////////////////////////// PIERWSZA PIATKA
  124.           //int idmeczu[]={1,2,3,4,5};
  125.           int idpg[]={1,1,1,1,1};int idsg[]={2,2,2,2,2};int idsf[]={3,3,3,3,3}; int idpf[]={4,4,4,4,4};int idc[]={5,5,5,5,5};
  126.           for(int i=0;i<idpg.length;i++)
  127.               stmt.executeUpdate("INSERT INTO pierwszysklad values(' "+(i+1)+"', '"+idpg[i]+"', '"+idsg[i]+"', '"+idsf[i]+"', '"+idpf[i]+"', '"+idc[i]+"')");
  128.         } catch (SQLException e3) {
  129.             // TODO Auto-generated catch block
  130.             JOptionPane.showMessageDialog(null, e3.getMessage());
  131.         }
  132.         EventQueue.invokeLater(new Runnable() {
  133.             public void run() {
  134.                 try {
  135.                     PietriWager frame = new PietriWager();
  136.                     frame.setVisible(true);
  137.                 } catch (Exception e) {
  138.                     JOptionPane.showMessageDialog(null, e.getMessage());
  139.                 }
  140.             }
  141.         });
  142.     }
  143.  
  144.     /**
  145.      * Create the frame.
  146.      */
  147.     public PietriWager() {
  148.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  149.         setBounds(100, 100, 450, 300);
  150.        
  151.         JMenuBar menuBar = new JMenuBar();
  152.         setJMenuBar(menuBar);
  153.        
  154.         JMenu mnMenu = new JMenu("Menu");
  155.         menuBar.add(mnMenu);
  156.        
  157.         JMenu mnZnajdZawodnika = new JMenu("Znajd\u017A Zawodnika");
  158.         mnMenu.add(mnZnajdZawodnika);
  159.        
  160.         JMenuItem mntmPoImieniu = new JMenuItem("Po imieniu");
  161.         mntmPoImieniu.setActionCommand("findPlayerByName");
  162.         mnZnajdZawodnika.add(mntmPoImieniu);
  163.        
  164.         JMenuItem mntmPoNazwisku = new JMenuItem("Po nazwisku");
  165.         mntmPoNazwisku.setActionCommand("findPlayerBySurname");
  166.         mnZnajdZawodnika.add(mntmPoNazwisku);
  167.        
  168.         JMenuItem mntmPoWieku = new JMenuItem("Po wieku");
  169.         mntmPoWieku.setActionCommand("findPlayerByName");
  170.         mnZnajdZawodnika.add(mntmPoWieku);
  171.        
  172.         JMenu mnZnajdMecz = new JMenu("Znajd\u017A Mecz");
  173.         mnMenu.add(mnZnajdMecz);
  174.        
  175.         JMenuItem mntmPoPrzeciwniku = new JMenuItem("Przeciwko danej dru\u017Cynie");
  176.         mntmPoPrzeciwniku.setActionCommand("findGameByOponent");;
  177.         mnZnajdMecz.add(mntmPoPrzeciwniku);
  178.        
  179.         JMenuItem mntmWOkrelonymCzasie = new JMenuItem("W okre\u015Blonym czasie");
  180.         mntmWOkrelonymCzasie.setActionCommand("findGameByDate");
  181.         mnZnajdMecz.add(mntmWOkrelonymCzasie);
  182.        
  183.         JMenu mnWidok = new JMenu("Widok");
  184.         menuBar.add(mnWidok);
  185.        
  186.         JRadioButtonMenuItem mntmZawodnicy = new JRadioButtonMenuItem("Zawodnicy");
  187.         mntmZawodnicy.setActionCommand("zawodnicy");
  188.         buttonGroup.add(mntmZawodnicy);
  189.        
  190.         mnWidok.add(mntmZawodnicy);
  191.        
  192.         JRadioButtonMenuItem mntmPierwszySkad = new JRadioButtonMenuItem("Pierwszy Sk\u0142ad");
  193.         buttonGroup.add(mntmPierwszySkad);
  194.         mntmPierwszySkad.setActionCommand("pierwszysklad");
  195.         mnWidok.add(mntmPierwszySkad);
  196.        
  197.         JRadioButtonMenuItem mntmNadchodzce = new JRadioButtonMenuItem("Mecze Nadchodz\u0105ce");
  198.         mntmNadchodzce.setActionCommand("meczenadchodzace");
  199.         buttonGroup.add(mntmNadchodzce);
  200.         mnWidok.add(mntmNadchodzce);
  201.        
  202.         JRadioButtonMenuItem mntmUbiege = new JRadioButtonMenuItem("Mecze Ubieg\u0142e");
  203.         mntmUbiege.setActionCommand("meczeubiegle");
  204.         buttonGroup.add(mntmUbiege);
  205.         mnWidok.add(mntmUbiege);
  206.        
  207.         JRadioButtonMenuItem rdbtnmntmStatystykiGraczy = new JRadioButtonMenuItem("Statystyki Graczy");
  208.         rdbtnmntmStatystykiGraczy.setActionCommand("statystyki");
  209.         buttonGroup.add(rdbtnmntmStatystykiGraczy);
  210.         mnWidok.add(rdbtnmntmStatystykiGraczy);
  211.        
  212.         btnDodaj = new JButton("Dodaj");
  213.         menuBar.add(btnDodaj);
  214.        
  215.         btnUsuZaznaczony = new JButton("Usu\u0144 zaznaczony");
  216.         menuBar.add(btnUsuZaznaczony);
  217.        
  218.         rdbtnmntmStatystykiGraczy.addActionListener(this);
  219.         mntmNadchodzce.addActionListener(this);
  220.         mntmUbiege.addActionListener(this);
  221.         mntmPierwszySkad.addActionListener(this);
  222.         mntmZawodnicy.addActionListener(this);
  223.        
  224.         mntmPoImieniu.addActionListener(this);
  225.         mntmPoNazwisku.addActionListener(this);
  226.         mntmPoWieku.addActionListener(this);
  227.        
  228.         mntmPoPrzeciwniku.addActionListener(this);
  229.         mntmWOkrelonymCzasie.addActionListener(this);
  230.         btnDodaj.addActionListener(this);
  231.         btnUsuZaznaczony.addActionListener(this);
  232.        
  233.        
  234.         contentPane = new JPanel();
  235.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  236.         setContentPane(contentPane);
  237.         contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.X_AXIS));
  238.        
  239.         JScrollPane scrollPane_1 = new JScrollPane();
  240.         contentPane.add(scrollPane_1);
  241.        
  242.         table = new JTable();
  243.         scrollPane_1.setViewportView(table);
  244.        
  245.     }
  246.     public static DefaultTableModel buildTableModel(ResultSet rs)
  247.             throws SQLException {
  248.  
  249.         ResultSetMetaData metaData = rs.getMetaData();
  250.  
  251.         Vector<String> columnNames = new Vector<String>();
  252.         int columnCount = metaData.getColumnCount();
  253.         for (int column = 1; column <= columnCount; column++) {
  254.             columnNames.add(metaData.getColumnName(column));
  255.         }
  256.  
  257.         Vector<Vector<Object>> data = new Vector<Vector<Object>>();
  258.         while (rs.next()) {
  259.             Vector<Object> vector = new Vector<Object>();
  260.             for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
  261.                 vector.add(rs.getObject(columnIndex));
  262.             }
  263.             data.add(vector);
  264.         }
  265.  
  266.         return new DefaultTableModel(data, columnNames);
  267.  
  268.     }
  269.    
  270.     public void insertRow(int ID){
  271.         int rowCount = model.getRowCount();
  272.         int columnCount = model.getColumnCount();
  273.         String tempString = "";
  274.        
  275.         for(int i = 0;i<columnCount-1;i++)
  276.             tempString+=" , ''";
  277.        
  278.          querry = "INSERT INTO " + actualTable + " VALUES ('" + Integer.toString(ID) + "'" + tempString +")";
  279.          try {
  280.                 newStatement.executeUpdate(querry);
  281.             } catch (SQLException e) {
  282.                 // TODO Auto-generated catch block
  283.                 JOptionPane.showMessageDialog(null, e.getMessage());
  284.             }
  285.          }
  286.    
  287.     public void updateTable(){
  288.         int rowCount = model.getRowCount();
  289.         int columnCount = model.getColumnCount();
  290.        
  291.         String columnNames = "";
  292.          for(int i = 0;i<rowCount;i++){
  293.          for (int column = 0; column < columnCount; column++) {
  294.              columnNames+=model.getColumnName(column)+ " = '" + model.getValueAt(i, column).toString() + "' , ";
  295.          }
  296.          querry = "UPDATE " + actualTable + " SET " + columnNames.substring(0, columnNames.length()-2) + " WHERE id = " + Integer.toString(i+1);
  297.          try {
  298.                 newStatement.executeUpdate(querry);
  299.             } catch (SQLException e) {
  300.                 // TODO Auto-generated catch block
  301.                 JOptionPane.showMessageDialog(null, e.getMessage());
  302.             }
  303.          columnNames="";
  304.          }
  305.     }
  306.    
  307.     public int incrementID(Table t1, Table t2, Table t3, Table t4, Table t5){
  308.         int id = 0;
  309.         if(actualTable.equals(t1.getName())){
  310.             id=t1.getID();
  311.             t1.setID(id+1);
  312.         }
  313.         else if(actualTable.equals(t2.getName())){
  314.             id=t2.getID();
  315.             t2.setID(id+1);
  316.         }
  317.         else if(actualTable.equals(t3.getName())){
  318.             id=t3.getID();
  319.             t3.setID(id+1);
  320.         }
  321.         else if(actualTable.equals(t4.getName())){
  322.             id=t4.getID();
  323.             t4.setID(id+1);
  324.         }
  325.         else if(actualTable.equals(t5.getName())){
  326.             id=t5.getID();
  327.             t5.setID(id+1);
  328.         }
  329.         return id;
  330.     }
  331.     public void decrementID(Table t1, Table t2, Table t3, Table t4, Table t5){
  332.         int id = 0;
  333.         if(actualTable.equals(t1.getName())){
  334.             t1.setID(Integer.parseInt(model.getValueAt(model.getRowCount()-1, 0).toString())+1);
  335.         }
  336.         else if(actualTable.equals(t2.getName())){
  337.             t1.setID(Integer.parseInt(model.getValueAt(model.getRowCount()-1, 0).toString())+1);
  338.         }
  339.         else if(actualTable.equals(t3.getName())){
  340.             t1.setID(Integer.parseInt(model.getValueAt(model.getRowCount()-1, 0).toString())+1);
  341.         }
  342.         else if(actualTable.equals(t4.getName())){
  343.             t1.setID(Integer.parseInt(model.getValueAt(model.getRowCount()-1, 0).toString())+1);
  344.         }
  345.         else if(actualTable.equals(t5.getName())){
  346.             t1.setID(Integer.parseInt(model.getValueAt(model.getRowCount()-1, 0).toString())+1);
  347.         }
  348.     }
  349.    
  350.     public void setTableID(Table t1, Table t2, Table t3, Table t4, Table t5, int rowCount){
  351.         if(actualTable.equals(t1.getName())){
  352.             t1.setID(rowCount+1);
  353.         }
  354.         else if(actualTable.equals(t2.getName())){
  355.             t2.setID(rowCount+1);
  356.         }
  357.         else if(actualTable.equals(t3.getName())){
  358.             t3.setID(rowCount+1);
  359.         }
  360.         else if(actualTable.equals(t4.getName())){
  361.             t4.setID(rowCount+1);
  362.         }
  363.         else if(actualTable.equals(t5.getName())){
  364.             t5.setID(rowCount+1);
  365.         }
  366.     }
  367.    
  368.     public void executeQuerryAndUpdateTable(String querry) throws SQLException{
  369.         resultSet = newStatement.executeQuery(querry);
  370.         model = buildTableModel(resultSet);
  371.         table.setModel(model);
  372.     }
  373.  
  374.     @Override
  375.         public void actionPerformed(ActionEvent arg0) {
  376.             if(arg0.getActionCommand().equals("findGame")){
  377.                 buttonGroup.clearSelection();
  378.                 String inputValue = JOptionPane.showInputDialog("Podaj nazwę przeciwnika");
  379.             }
  380.             else if(arg0.getActionCommand().equals("findPlayerByName")){
  381.                 buttonGroup.clearSelection();
  382.                 String inputValue = JOptionPane.showInputDialog("Podaj imię gracza");
  383.                 querry = "SELECT * FROM zawodnicy WHERE name = " + "'"+inputValue+"'";
  384.                 try {
  385.                     executeQuerryAndUpdateTable(querry);
  386.                 } catch (SQLException e) {
  387.                     // TODO Auto-generated catch block
  388.                     JOptionPane.showMessageDialog(null, e.getMessage());
  389.                 }
  390.             }
  391.             else if(arg0.getSource()== btnDodaj){
  392.                 try{
  393.                 int colCount = model.getColumnCount();
  394.                 Object tempObj[] = new Object[colCount];
  395.                 int tempId = incrementID(zawodnicy, meczeubiegle, meczenadchodzace, pierwszysklad, statystyki);
  396.                 tempObj[0]=(tempId);
  397.                 insertRow(tempId);
  398.                 updateTable();
  399.                 for(int i = 1;i<colCount;i++) tempObj[i] = " ";
  400.                 model.addRow(tempObj);
  401.                 }
  402.                 catch (NullPointerException e){
  403.                     JOptionPane.showMessageDialog(null,"Wybierz tabelę");
  404.                 }
  405.             }
  406.             else if(arg0.getSource()== btnUsuZaznaczony){
  407.                 try{
  408.                 int selectedRow = table.getSelectedRow();
  409.                 if(selectedRow != -1){
  410.                     querry = "DELETE FROM " + actualTable + " WHERE ID = " + Integer.toString(selectedRow+1);
  411.                     try {
  412.                         newStatement.executeUpdate(querry);
  413.                         decrementID(zawodnicy, meczeubiegle, meczenadchodzace, pierwszysklad, statystyki);
  414.                     } catch (SQLException e) {
  415.                         // TODO Auto-generated catch block
  416.                         JOptionPane.showMessageDialog(null, e.getMessage());
  417.                     }
  418.                     model.removeRow(selectedRow);
  419.                    
  420.                 }
  421.                 else JOptionPane.showMessageDialog(null, "Nie wybrano żadnego wiersza");
  422.                 }
  423.                 catch (NullPointerException e){
  424.                     JOptionPane.showMessageDialog(null,"Wybierz tabelę");
  425.                 }
  426.             }
  427.             else{
  428.                 actualTable = arg0.getActionCommand();
  429.                 querry = "SELECT * from " + arg0.getActionCommand();
  430.                 try {
  431.                     executeQuerryAndUpdateTable(querry);
  432.                     setTableID(zawodnicy, meczeubiegle, meczenadchodzace, pierwszysklad, statystyki, model.getRowCount());
  433.                 } catch (SQLException e) {
  434.                     // TODO Auto-generated catch block
  435.                     JOptionPane.showMessageDialog(null, e.getMessage());
  436.                 }
  437.             }
  438.         }
  439. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement