· 10 years ago · Feb 21, 2016, 12:51 PM
1package bazaddx;
2
3import java.awt.BorderLayout;
4import java.awt.EventQueue;
5import java.awt.event.ActionEvent;
6import java.awt.event.ActionListener;
7
8import javax.swing.*;
9import javax.swing.JPanel;
10import javax.swing.border.EmptyBorder;
11import javax.swing.JTable;
12import javax.swing.BoxLayout;
13import javax.swing.table.DefaultTableModel;
14
15import java.sql.Connection;
16import java.sql.DriverManager;
17import java.sql.PreparedStatement;
18import java.sql.ResultSet;
19import java.sql.ResultSetMetaData;
20import java.sql.SQLException;
21import java.sql.Statement;
22import java.text.ParseException;
23import java.text.SimpleDateFormat;
24import java.util.Vector;
25
26public 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}