Advertisement
Guest User

Untitled

a guest
Mar 31st, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.49 KB | None | 0 0
  1. /* Paci Davide 4C 18/03/2019
  2.  
  3. CLASSI:
  4. Volo
  5. codice_volo, citta_part, citta_dest, ora_part, ora_dest, capienza_aereo
  6. Prenotazione
  7. codice_volo, Passeggero.nome, stato_pren (char)
  8. (nella lista non possono esserci 2 per lo stesso volo per lo stesso passeggero)
  9.  
  10. FUNZIONI:
  11. X 1. caricaElenchi(): dati i file ELENCO.FLY e OGGI.DAT, trasferisce le informazioni in memoria centrale
  12. X 2. salvaElenchi()
  13. X 3. stampaConfermati(int): dato un codice_volo stampa l'elenco dei
  14. passeggeri la cui stato_pren a'¨ confermata
  15. X 4. controllaVoliPasseggero(String): dato il nome di un passeggero stampa l'elenco dei voli per cui a'¨ prenotato il
  16. passeggero ordinato per orario di partenza
  17. X 5. prenotaVolo(String, int): dato un nome di un passegero e un codice di un volo, inserisce la prenotazione
  18. del passeggero dopo aver verificato che:
  19. a. non esiste gia' una prenotazione per il passeggero sullo stesso volo
  20. b. il numero di prenotati (indipendentemente dallo stato di prenotazione) e minore della
  21. capienza_aereo
  22. X 6. compraBiglietto(String, int): dato un nome di un passeggero e un codice di un volo modifica il campo
  23. stato_pren.
  24. 7. Realizzazione di una GUI */
  25.  
  26. package paci.gestione.c.aerea;
  27.  
  28. import java.awt.EventQueue;
  29.  
  30. import javax.swing.JFrame;
  31. import javax.swing.JPanel;
  32. import javax.swing.JScrollPane;
  33.  
  34. import java.awt.BorderLayout;
  35. import javax.swing.JLabel;
  36. import javax.swing.SwingConstants;
  37. import javax.swing.JTable;
  38. import javax.swing.JButton;
  39. import java.awt.Font;
  40. import javax.swing.JTextField;
  41. import javax.swing.JList;
  42. import javax.swing.JOptionPane;
  43. import javax.swing.JComboBox;
  44. import javax.swing.JCheckBox;
  45. import java.awt.event.ActionListener;
  46. import java.io.BufferedReader;
  47. import java.io.BufferedWriter;
  48. import java.io.File;
  49. import java.io.FileNotFoundException;
  50. import java.io.FileOutputStream;
  51. import java.io.FileReader;
  52. import java.io.IOException;
  53. import java.io.OutputStreamWriter;
  54. import java.sql.Connection;
  55. import java.sql.DriverManager;
  56. import java.sql.PreparedStatement;
  57. import java.sql.ResultSet;
  58. import java.sql.ResultSetMetaData;
  59. import java.sql.SQLException;
  60. import java.util.ArrayList;
  61. import java.awt.event.ActionEvent;
  62. import javax.swing.table.DefaultTableModel;
  63. import javax.swing.ListSelectionModel;
  64. import javax.swing.ImageIcon;
  65.  
  66. public class GUI {
  67.  
  68. private JFrame frame;
  69. private JTable table;
  70. private JScrollPane jScrollPane1;
  71. JPanel panelimpostazioni;
  72. JPanel panelvoli;
  73. JPanel panelprenotazioni;
  74. static boolean biglietto;
  75. /**
  76. * Launch the application.
  77. * @throws IOException
  78. * @throws FileNotFoundException
  79. */
  80. public static ArrayList<Volo> Elenco;
  81. public static ArrayList<Prenotazione> Oggi;
  82. public static boolean salvaChiusura = false;
  83. private JTable table_pren;
  84.  
  85. public static void main(String[] args) throws FileNotFoundException, IOException {
  86. /* SHUTDOWN HOOK
  87. * Thread che esegue alcune istruzioni alla chiusura del programma.
  88. * a'ˆ meglio del WindowListener percha'© agisce anche se chiuso da prompt di comandi o Task Manager. */
  89. Runtime.getRuntime().addShutdownHook(new Thread()
  90. {
  91. public void run()
  92. {
  93. if (salvaChiusura) salvaElenchi(Elenco,Oggi);
  94. }
  95. });
  96. // SHUTDOWN HOOK
  97.  
  98. // MAIN
  99. // Inizializziamo gli elenchi
  100. Elenco = new ArrayList<>(); // Elenco dei voli (ELENCO.FLY)
  101. Oggi = new ArrayList<>(); // Elenco delle prenotazioni (OGGI.DAT)
  102.  
  103. //caricaElenchi(Elenco,Oggi);
  104. /*caricaElenchi(Elenco,Oggi);
  105. salvaElenchi(Elenco,Oggi);
  106.  
  107. System.out.println(Elenco);
  108. System.out.println(Oggi);
  109.  
  110. stampaConfermati(7498,Oggi);
  111. controllaVoliPasseggero("Jotaro Kujo",Elenco,Oggi);
  112.  
  113. System.out.println(Elenco.get(2));
  114. System.out.println(Oggi.get(6));
  115. prenotaVolo("Davide Paci",7498,Elenco,Oggi);*/
  116. // MAIN
  117.  
  118. GUI window = new GUI();
  119. window.frame.setVisible(true);
  120. }
  121.  
  122. // FUNZIONI MAIN
  123. public static void creaElencoVoli(ArrayList<Volo> Elenco) {
  124. // Tre voli
  125. Elenco.add(new Volo(7498,"Catania","Tokyo",new Orario(14,5),new Orario(20,50),506));
  126. Elenco.add(new Volo(3373,"Catania","Milano",new Orario(6,35),new Orario(9,50),120));
  127. Elenco.add(new Volo(2342,"Catania","Copenhagen",new Orario(9,65),new Orario(9,50),120));
  128. }
  129.  
  130. public static void creaElencoPrenotazioni(ArrayList<Prenotazione> Oggi) {
  131. // Sette prenotazioni
  132. Oggi.add(new Prenotazione(7498,"Giacomino Frastangela",'b'));
  133. Oggi.add(new Prenotazione(7498,"Gianmarco Lauretta",'c'));
  134. Oggi.add(new Prenotazione(7498,"Jotaro Kujo",'p'));
  135.  
  136. Oggi.add(new Prenotazione(3373,"Jotaro Kujo",'b'));
  137. Oggi.add(new Prenotazione(7498,"Chicciricha'¬ Coccoda'¨",'b'));
  138. Oggi.add(new Prenotazione(2342,"Popopopopopo Canzone Stadio",'b'));
  139.  
  140. Oggi.add(new Prenotazione(2342,"Jotaro Kujo",'b'));
  141. }
  142.  
  143. // Carica le liste in memoria (se non le trova crea delle liste di esempio)
  144. public static void caricaElenchi(ArrayList<Volo> Elenco, ArrayList<Prenotazione> Oggi) throws FileNotFoundException, IOException {
  145. String riga;
  146.  
  147. Elenco.clear();
  148. Oggi.clear();
  149.  
  150. // LETTURA ELENCO.FLY //////////
  151. File file_elenco = new File ("ELENCO.FLY");
  152. try {
  153. BufferedReader br = new BufferedReader(new FileReader(file_elenco));
  154. while ((riga = br.readLine()) != null)
  155. {
  156. // Elenco.add(new Volo(7498,"Catania","Tokyo",new Orario(14,5),new Orario(20,50),506));
  157. Elenco.add( new Volo( Integer.parseInt(br.readLine()),
  158. br.readLine(), br.readLine(),
  159. creaOrarioDaStringa(br.readLine()), creaOrarioDaStringa(br.readLine()),
  160. Integer.parseInt(br.readLine()) ) );
  161. }
  162. }
  163. catch (FileNotFoundException e1) {
  164. JOptionPane.showMessageDialog(null, "File non trovato. Verra'  caricato un elenco di esempio.");
  165. creaElencoVoli(Elenco);
  166. }
  167.  
  168. // LETTURA ELENCO.FLY //////////
  169. File file_oggi = new File ("OGGI.DAT");
  170. try {
  171. BufferedReader br = new BufferedReader(new FileReader(file_oggi));
  172. while ((riga = br.readLine()) != null)
  173. {
  174. // Oggi.add(new Prenotazione(7498,"Gianpiero Frastandola",'b'));
  175. Oggi.add( new Prenotazione( Integer.parseInt(br.readLine()),
  176. br.readLine(),
  177. br.readLine().charAt(0) ) );
  178. }
  179. }
  180. catch (FileNotFoundException e2) {
  181. creaElencoPrenotazioni(Oggi);
  182. }
  183. }
  184.  
  185. public static void caricaElenchiDB(ArrayList<Volo> Elenco, ArrayList<Prenotazione> Oggi) throws FileNotFoundException, IOException
  186. {
  187. Elenco.clear();
  188. Oggi.clear();
  189.  
  190. PreparedStatement ps = null;
  191. Connection conn = null;
  192. try {
  193. conn = DriverManager.getConnection("jdbc:mysql://2.226.177.40/test", "monty", "monty");
  194. } catch (SQLException e1) {
  195. // TODO Auto-generated catch block
  196. e1.printStackTrace();
  197. }
  198.  
  199. String query = "select * from `voli`";
  200. try {
  201. ps = conn.prepareStatement(query);
  202. } catch (SQLException e) {
  203. // TODO Auto-generated catch block
  204. e.printStackTrace();
  205. }
  206. ResultSet rs;
  207. try {
  208. rs = ps.executeQuery(query);
  209. while (rs.next())
  210. {
  211. Elenco.add( new Volo( Integer.parseInt(rs.getString("Codice")),
  212. rs.getString("Partenza"), rs.getString("Destinazione"),
  213. creaOrarioDaStringa(rs.getString("OrarioP")), creaOrarioDaStringa(rs.getString("OrarioD")),
  214. Integer.parseInt(rs.getString("Capienza")) ) );
  215. }
  216. } catch (SQLException e) {
  217. // TODO Auto-generated catch block
  218. e.printStackTrace();
  219. }
  220.  
  221. query = "select * from `prenotazioni`";
  222. try {
  223. ps = conn.prepareStatement(query);
  224. } catch (SQLException e) {
  225. // TODO Auto-generated catch block
  226. e.printStackTrace();
  227. }
  228. try {
  229. rs = ps.executeQuery(query);
  230. while (rs.next())
  231. {
  232. Oggi.add( new Prenotazione( Integer.parseInt(rs.getString("Codice")),
  233. rs.getString("Passeggero"),
  234. rs.getString("Statoprenotazione").charAt(0) ) );
  235. }
  236. } catch (SQLException e) {
  237. // TODO Auto-generated catch block
  238. e.printStackTrace();
  239. }
  240.  
  241. }
  242.  
  243. /* Funzione per assistere caricaElenchi
  244. Da una stringa di un orario crea l'oggetto Orario */
  245. public static Orario creaOrarioDaStringa(String orarioString) {
  246. Orario orario_o = null;
  247. int ora,minuto;
  248.  
  249. // Prendi la parte prima del :, convertilo a int, portalo in ora
  250. String ora_s = orarioString.split("\\:")[0];
  251.  
  252. // Controlla se ha uno 0 davanti, allora taglia quello 0
  253. if (ora_s.startsWith("0"))
  254. ora_s = ora_s.replaceFirst(String.valueOf(ora_s.charAt(0)),"");
  255.  
  256. // Converti a intero
  257. ora = Integer.parseInt(ora_s);
  258.  
  259. // Ripetiamo lo stesso per i minuti
  260. String minuto_s = orarioString.split("\\:")[1];
  261.  
  262. // Controlla se ha uno 0 davanti, allora taglia quello 0
  263. if (minuto_s.startsWith("0"))
  264. minuto_s = minuto_s.replaceFirst(String.valueOf(minuto_s.charAt(0)),"");
  265.  
  266. // Converti a intero
  267. minuto = Integer.parseInt(minuto_s);
  268.  
  269. // Creiamo l'oggetto
  270. orario_o = new Orario(ora,minuto);
  271.  
  272. return orario_o;
  273. }
  274.  
  275. // Salva le liste su disco rigido
  276. public static void salvaElenchi(ArrayList<Volo> Elenco, ArrayList<Prenotazione> Oggi)
  277. {
  278. // SALVATAGGIO ELENCO.FLY //////////////
  279. File file_elenco = new File("ELENCO.FLY");
  280. BufferedWriter out = null;
  281. try {
  282. file_elenco.createNewFile();
  283. //JOptionPane.showMessageDialog(null, "File creato con successo.");
  284. } catch (IOException e2) {
  285. JOptionPane.showMessageDialog(null, "Impossibile creare il file.");
  286. }
  287.  
  288. try {
  289. out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file_elenco)));
  290. for (Volo v : Elenco) {
  291. /* int codice_volo, String citta_part, String citta_dest, Orario ora_part, Orario ora_dest, int capienza_aereo*/
  292. out.write("\n");
  293. out.write(v.codice_volo + "\n");
  294. out.write(v.citta_part + "\n");
  295. out.write(v.citta_dest + "\n");
  296. out.write(v.ora_part + "\n");
  297. out.write(v.ora_dest + "\n");
  298. out.write(v.capienza_aereo + "\n");
  299. // da errore out.close();
  300. }
  301. } catch (IOException e1) {
  302. JOptionPane.showMessageDialog(null, "Impossibile scrivere su file.");
  303. } finally {
  304. try {out.close();} catch (IOException ex) {/*ignore*/}
  305. }
  306.  
  307. // SALVATAGGIO OGGI.DAT //////////////
  308. File file_oggi = new File("OGGI.DAT");
  309. try {
  310. file_oggi.createNewFile();
  311. //JOptionPane.showMessageDialog(null, "File creato con successo.");
  312. } catch (IOException e2) {
  313. JOptionPane.showMessageDialog(null, "Impossibile creare il file.");
  314. }
  315.  
  316. try {
  317. out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file_oggi)));
  318. // Questo dovra'¨ scrivere l'elenco out.write("con cosa?");
  319. for (Prenotazione o : Oggi) {
  320. /* int codice_volo, String citta_part, String citta_dest, Orario ora_part, Orario ora_dest, int capienza_aereo*/
  321. out.write("\n");
  322. out.write(o.codice_volo + "\n");
  323. out.write(o.nome_passeggero + "\n");
  324. out.write(o.stato_pren + "\n");
  325. }
  326. } catch (IOException e1) {
  327. JOptionPane.showMessageDialog(null, "Impossibile scrivere su file.");
  328. } finally {
  329. try {out.close();} catch (IOException ex) {/*ignore*/}
  330. }
  331. }
  332.  
  333. // Dato un codice_volo stampa l'elenco dei passeggeri la cui stato_pren a'¨ confermata
  334. public static void stampaConfermati(int codice_volo, ArrayList<Prenotazione> Oggi) {
  335. String s = "";
  336.  
  337. // Controlla l'elenco di prenotazioni
  338. for (Prenotazione o : Oggi) {
  339. // Se combacia con il parametro controlla lo stato_pren
  340. if (o.getCodice_volo() == codice_volo) {
  341. if (o.getStato_pren() == 'b' || o.getStato_pren() == 'p') {
  342. // Se lo stato_pren a'¨ 'b' o 'p' stampa l'oggetto
  343. s = s + o.getNome_passeggero() + " - ";
  344. }
  345. }
  346. }
  347.  
  348. // Stampa
  349. JOptionPane.showMessageDialog(null, s);
  350. }
  351.  
  352. // Dato il nome di un passeggero stampa l'elenco dei voli per cui a'¨ prenotato il passeggero ordinato per orario di partenza
  353. public static void controllaVoliPasseggero(String nome_passeggero, ArrayList<Volo> Elenco, ArrayList<Prenotazione> Oggi) {
  354. int indice, trovati = 0;
  355. ArrayList<Volo> Elenco_temp = new ArrayList<>();
  356.  
  357. // Controlla l'elenco di prenotazioni
  358. for (Prenotazione o : Oggi) {
  359. // Se combacia con il parametro prendi il volo e mettilo in array
  360. if (o.getNome_passeggero().equals(nome_passeggero)) {
  361. indice = o.getCodice_volo();
  362. //System.out.println(Elenco.get(trovaIndiceVolo(indice,Elenco)));
  363. Elenco_temp.add(Elenco.get(trovaIndiceVolo(indice,Elenco)));
  364. trovati++;
  365. }
  366. }
  367.  
  368. // Se non ne ha trovato alcuno dai errore
  369. if (trovati == 0) JOptionPane.showMessageDialog(null, "[!] VOLI NON TROVATI PER " + nome_passeggero + " [!]");
  370. // Altrimenti li stampi
  371. else {
  372. String voli_output = "";
  373. // Dall'array stampa i voli in ordine crescente di orario di partenza
  374. riordinaArrayListTempo(Elenco_temp);
  375.  
  376. for (Volo v_temp : Elenco_temp) {
  377. //System.out.println(v_temp);
  378. voli_output = voli_output + v_temp + "\n";
  379. }
  380.  
  381. // Stampa
  382. JOptionPane.showMessageDialog(null, voli_output);
  383. }
  384. }
  385.  
  386. /* #1 Funzione per assistere controllaVoliPasseggero
  387. Trova l'indice del Volo da stampare dato un codice volo */
  388. public static int trovaIndiceVolo(int codice_volo, ArrayList<Volo> Elenco) {
  389. int indice = 0;
  390.  
  391. for (Volo v : Elenco) {
  392. if (v.getCodice_volo() == codice_volo) {
  393. indice = Elenco.indexOf(v);
  394. }
  395. }
  396.  
  397. return indice;
  398. }
  399.  
  400. /* #2 Funzione per assistere controllaVoliPasseggero
  401. Riordina l'array generato */
  402. public static void riordinaArrayListTempo(ArrayList<Volo> Elenco_temp) {
  403. Volo temp;
  404.  
  405. if (Elenco_temp.size() > 1)
  406. {
  407. for (int i=0; i < Elenco_temp.size()-i; i++) {
  408. if (Elenco_temp.get(i).ora_part.isLaterThan(Elenco_temp.get(i+1).ora_part))
  409. {
  410. temp = Elenco_temp.get(i);
  411. Elenco_temp.set(i,Elenco_temp.get(i+1) );
  412. Elenco_temp.set(i+1, temp);
  413. }
  414. }
  415. }
  416. }
  417.  
  418. public static void prenotaVolo(String nome_passeggero, int codice_volo, ArrayList<Volo> Elenco, ArrayList<Prenotazione> Oggi) {
  419. boolean duplicato = false;
  420.  
  421. // Controlla se non c'a'¨ una prenotazione con gli stessi parametri
  422. for (Prenotazione o : Oggi) {
  423. if ((o.getCodice_volo() == codice_volo) && (o.getNome_passeggero().equals(nome_passeggero))) {
  424. duplicato = true;
  425. break;
  426. }
  427. }
  428.  
  429. if (duplicato) {
  430. // Se c'a'¨, ritorna errore
  431. JOptionPane.showMessageDialog(null, "[!] PRENOTAZIONE GIA' PRESENTE [!]");
  432. //System.out.println("[!] PRENOTAZIONE GIA' PRESENTE [!]");
  433. }
  434. // Controlla se il numero di prenotati, prima di aggiungere, a'¨ maggiore della capienza aereo
  435. else if (!Oggi.contains(codice_volo)) {
  436. //System.out.println("[DEBUG] Controllo duplicati");
  437. // Iniz. variabili
  438. int capienza_aereo = 0, prenotati = 0;
  439.  
  440. //System.out.println("[DEBUG] Conto prenotati");
  441. // Contiamo i prenotati
  442. for (Prenotazione o : Oggi) {
  443. if (o.getCodice_volo() == codice_volo) prenotati++;
  444. }
  445.  
  446. //System.out.println("[DEBUG] Presa capienza volo");
  447. // Prendiamo la capienza del volo
  448. for (Volo v : Elenco) {
  449. if (v.getCodice_volo() == codice_volo) {
  450. capienza_aereo = v.getCapienza_aereo();
  451. break;
  452. }
  453. }
  454.  
  455. //System.out.println("[DEBUG] Controllo prenotati-capienza");
  456. // Se a'¨ maggiore, ritorna errore, altrimenti aggiungi
  457. if ((prenotati+1) > capienza_aereo)
  458. JOptionPane.showMessageDialog(null, "La prenotazione di " + nome_passeggero + " per il volo " + Integer.toString(codice_volo) + " non ha avuto successo (CAPIENZA MASSIMA RAGGIUNTA O VOLO NON ESISTENTE).");
  459. //System.out.println("La prenotazione di " + nome_passeggero + " per il volo " + Integer.toString(codice_volo) + " non ha avuto successo (CAPIENZA MASSIMA RAGGIUNTA).");
  460. else {
  461. //System.out.println("[DEBUG] Aggiunta prenotazione");
  462. // Aggiungi una prenotazione all'elenco con i parametri e stato_pren 'c';
  463. Prenotazione pren_temp = new Prenotazione(codice_volo, nome_passeggero, 'c');
  464. Oggi.add(pren_temp);
  465. JOptionPane.showMessageDialog(null, "Prenotazione avvenuta con successo!");
  466. //System.out.println("[DEBUG] Aggiunto");
  467. }
  468. }
  469. }
  470.  
  471. public static void compraBiglietto(String nome_passeggero, int codice_volo, ArrayList<Prenotazione> Oggi) {
  472. // Controlla l'elenco di prenotazioni
  473. for (Prenotazione o : Oggi) {
  474. // Controlla se esiste la prenotazione con questi due valori
  475. if ((o.getCodice_volo() == codice_volo) && (o.getNome_passeggero().equalsIgnoreCase(nome_passeggero))) {
  476. // Controlla se il valore di stato_pren a'¨ 'b'
  477. if (o.getStato_pren() == 'b') {
  478. JOptionPane.showMessageDialog(null, "[!] BIGLIETTO GIA' ACQUISTATO");
  479. //System.out.println("[!] BIGLIETTO GIA' ACQUISTATO");
  480. }
  481. else {
  482. o.setStato_pren('b');
  483. biglietto = true;
  484. break;
  485. }
  486. // Se gia'  lo a'¨, ritorna errore, altrimenti impostalo a 'b'
  487. }
  488. // Se non c'a'¨, ritorna errore
  489. else biglietto = false;
  490. }
  491. if(biglietto == true)
  492. {
  493. JOptionPane.showMessageDialog(null, "Biglietto acquistato con successo!");
  494. }
  495. else
  496. {
  497. JOptionPane.showMessageDialog(null, "[!] PRENOTAZIONE NON TROVATA [!]");
  498. }
  499.  
  500. }
  501. // FUNZIONI MAIN
  502.  
  503. // FUNZIONI GUI
  504. public void popolaJTableElenco(ArrayList<Volo> Elenco)
  505. {
  506.  
  507. DefaultTableModel model = (DefaultTableModel) table.getModel();
  508. Object rowData[] = new Object[6];
  509.  
  510. // Eliminiamo qualsiasi cosa ci sia
  511. model.setRowCount(0);
  512.  
  513. for(int i = 0; i < Elenco.size(); i++)
  514. {
  515. rowData[0] = Elenco.get(i).codice_volo;
  516. rowData[1] = Elenco.get(i).citta_part;
  517. rowData[2] = Elenco.get(i).citta_dest;
  518. rowData[3] = Elenco.get(i).ora_part;
  519. rowData[4] = Elenco.get(i).ora_dest;
  520. rowData[5] = Elenco.get(i).capienza_aereo;
  521. model.addRow(rowData);
  522. }
  523. }
  524.  
  525. public void popolaJTableOggi(ArrayList<Prenotazione> Oggi)
  526. {
  527.  
  528. DefaultTableModel model = (DefaultTableModel) table_pren.getModel();
  529. Object rowData[] = new Object[3];
  530.  
  531. // Eliminiamo qualsiasi cosa ci sia
  532. model.setRowCount(0);
  533.  
  534. for(int i = 0; i < Oggi.size(); i++)
  535. {
  536. rowData[0] = Oggi.get(i).codice_volo;
  537. rowData[1] = Oggi.get(i).nome_passeggero;
  538. switch (Oggi.get(i).stato_pren) {
  539. case 'b':
  540. rowData[2] = "BIGLIETTO EMESSO";
  541. break;
  542. case 'p':
  543. rowData[2] = "BIGLIETTO NON EMESSO (VOLO CONFERMATO)";
  544. break;
  545. case 'c':
  546. rowData[2] = "VOLO ANCORA DA CONFERMARE";
  547. break;
  548. default:
  549. rowData[2] = "NON VALIDO [!]";
  550. }
  551. model.addRow(rowData);
  552. }
  553. }
  554.  
  555.  
  556. // FUNZIONI GUI
  557.  
  558. /**
  559. * Create the application.
  560. */
  561. public GUI() {
  562. initialize();
  563. }
  564.  
  565. /**
  566. * Initialize the contents of the frame.
  567. */
  568. private void initialize() {
  569. frame = new JFrame();
  570. frame.setResizable(false);
  571. frame.setBounds(100, 100, 607, 300);
  572. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  573. frame.getContentPane().setLayout(null);
  574.  
  575. panelprenotazioni = new JPanel();
  576. panelprenotazioni.setEnabled(false);
  577. panelprenotazioni.setVisible(false);
  578.  
  579. JButton btn_Carica = new JButton("CARICA ELENCHI");
  580. btn_Carica.addActionListener(new ActionListener() {
  581. public void actionPerformed(ActionEvent e)
  582. {
  583.  
  584. try {
  585. int pulsanti = 0;
  586. int rispulsanti = JOptionPane.showConfirmDialog (null, "Vuoi caricare gli elenchi da file?","Sei sicuro?",pulsanti); // Questa variabile salva la decisione che prossimamente verra'  confrontata.
  587. if(rispulsanti == JOptionPane.YES_OPTION)
  588. {
  589. caricaElenchi(Elenco,Oggi);
  590. popolaJTableElenco(Elenco);
  591. popolaJTableOggi(Oggi);
  592. }
  593. else
  594. {
  595. int rispulsanti2 = JOptionPane.showConfirmDialog (null, "Vuoi caricare gli elenchi dal database?","Sei sicuro?",pulsanti); // Questa variabile salva la decisione che prossimamente verra'  confrontata.
  596. if(rispulsanti2 == JOptionPane.YES_OPTION)
  597. {
  598. caricaElenchiDB(Elenco,Oggi);
  599. popolaJTableElenco(Elenco);
  600. popolaJTableOggi(Oggi);
  601. }
  602. }
  603. } catch (IOException e1) {
  604. // TODO Auto-generated catch block
  605. e1.printStackTrace();
  606. }
  607. }
  608. });
  609. btn_Carica.setBounds(109, 227, 134, 23);
  610. frame.getContentPane().add(btn_Carica);
  611.  
  612. JButton btn_Salva = new JButton("SALVA ELENCHI");
  613. btn_Salva.addActionListener(new ActionListener() {
  614. public void actionPerformed(ActionEvent e) {
  615. int pulsanti = 0;
  616. int rispulsanti = JOptionPane.showConfirmDialog (null, "Vuoi salvare gli elenchi su file?","Sei sicuro?",pulsanti); // Questa variabile salva la decisione che prossimamente verra'  confrontata.
  617. if(rispulsanti == JOptionPane.YES_OPTION)
  618. {
  619. salvaElenchi(Elenco,Oggi);
  620. }
  621. }
  622. });
  623. btn_Salva.setBounds(348, 227, 134, 23);
  624. frame.getContentPane().add(btn_Salva);
  625. panelprenotazioni.setBounds(0, 0, 591, 261);
  626. frame.getContentPane().add(panelprenotazioni);
  627. panelprenotazioni.setLayout(null);
  628.  
  629. JLabel lblPrenotazioni = new JLabel("Prenotazioni:");
  630. lblPrenotazioni.setHorizontalAlignment(SwingConstants.CENTER);
  631. lblPrenotazioni.setFont(new Font("Dialog", Font.PLAIN, 15));
  632. lblPrenotazioni.setBounds(10, 11, 571, 33);
  633. panelprenotazioni.add(lblPrenotazioni);
  634.  
  635. JButton btn_indietro3 = new JButton("");
  636. btn_indietro3.setIcon(new ImageIcon(GUI.class.getResource("/icons/previous.png")));
  637. btn_indietro3.addActionListener(new ActionListener() {
  638. public void actionPerformed(ActionEvent e) {
  639. panelprenotazioni.setVisible(false);
  640. panelprenotazioni.setEnabled(false);
  641. panelvoli.setVisible(true);
  642. panelvoli.setEnabled(true);
  643.  
  644. }
  645. });
  646. btn_indietro3.setBounds(10, 216, 89, 34);
  647. panelprenotazioni.add(btn_indietro3);
  648.  
  649. JButton btn_avanti3 = new JButton("");
  650. btn_avanti3.setIcon(new ImageIcon(GUI.class.getResource("/icons/next.png")));
  651. btn_avanti3.addActionListener(new ActionListener() {
  652. public void actionPerformed(ActionEvent e) {
  653. panelprenotazioni.setVisible(false);
  654. panelprenotazioni.setEnabled(false);
  655. panelimpostazioni.setVisible(true);
  656. panelimpostazioni.setEnabled(true);
  657. btn_Carica.setVisible(false);
  658. btn_Salva.setVisible(false);
  659. }
  660. });
  661. btn_avanti3.setBounds(492, 216, 89, 34);
  662. panelprenotazioni.add(btn_avanti3);
  663.  
  664. JScrollPane scrollPane = new JScrollPane();
  665. scrollPane.setBounds(10, 55, 571, 150);
  666. table_pren = new JTable();
  667. table_pren.setEnabled(false);
  668. table_pren.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
  669. table_pren.setOpaque(false);
  670. table_pren.setModel(new javax.swing.table.DefaultTableModel(
  671. new Object[][] { },
  672. new String [] {
  673. "Codice", "Passeggero", "Stato prenotazione"
  674. }
  675. ));
  676. table_pren.setBounds(10, 43, 571, 160);
  677. scrollPane.setViewportView(table_pren);
  678. panelprenotazioni.add(scrollPane);
  679.  
  680. panelvoli = new JPanel();
  681. panelvoli.setBounds(0, 1, 591, 260);
  682. frame.getContentPane().add(panelvoli);
  683. panelvoli.setLayout(null);
  684.  
  685. JLabel lblNewLabel = new JLabel("Voli in corso:");
  686. lblNewLabel.setFont(new Font("Dialog", Font.PLAIN, 15));
  687. lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
  688. lblNewLabel.setBounds(10, 11, 571, 33);
  689. panelvoli.add(lblNewLabel);
  690.  
  691. jScrollPane1 = new JScrollPane();
  692. jScrollPane1.setBounds(10, 55, 571, 150);
  693. table = new JTable();
  694. table.setEnabled(false);
  695. table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
  696. table.setOpaque(false);
  697. table.setModel(new javax.swing.table.DefaultTableModel(
  698. new Object[][] { },
  699. new String [] {
  700. "Codice", "Citta'  partenza", "Citta'  destinazione", "Orario partenza", "Orario destinazione", "Capienza aereo"
  701. }
  702. ));
  703. table.setBounds(10, 43, 571, 160);
  704. jScrollPane1.setViewportView(table);
  705. panelvoli.add(jScrollPane1);
  706.  
  707.  
  708. JButton btn_avanti = new JButton("");
  709. btn_avanti.addActionListener(new ActionListener() {
  710. public void actionPerformed(ActionEvent e) {
  711. panelprenotazioni.setVisible(true);
  712. panelprenotazioni.setEnabled(true);
  713. panelvoli.setVisible(false);
  714. panelvoli.setEnabled(false);
  715. }
  716. });
  717. btn_avanti.setIcon(new ImageIcon(GUI.class.getResource("/icons/next.png")));
  718. btn_avanti.setBounds(492, 216, 89, 34);
  719. panelvoli.add(btn_avanti);
  720.  
  721. JButton btn_indietro = new JButton("");
  722. btn_indietro.addActionListener(new ActionListener() {
  723. public void actionPerformed(ActionEvent arg0) {
  724. panelimpostazioni.setVisible(true);
  725. panelimpostazioni.setEnabled(true);
  726. btn_Carica.setVisible(false);
  727. btn_Salva.setVisible(false);
  728. panelvoli.setVisible(false);
  729. panelvoli.setEnabled(false);
  730. }
  731. });
  732. btn_indietro.setIcon(new ImageIcon(GUI.class.getResource("/icons/previous.png")));
  733. btn_indietro.setBounds(10, 216, 89, 34);
  734. panelvoli.add(btn_indietro);
  735.  
  736. panelimpostazioni = new JPanel();
  737. panelimpostazioni.setVisible(false);
  738. panelimpostazioni.setEnabled(false);
  739. panelimpostazioni.setBounds(0, 0, 591, 261);
  740. frame.getContentPane().add(panelimpostazioni);
  741. panelimpostazioni.setLayout(null);
  742.  
  743. JButton btn_TrovaConfermati = new JButton("Trova passeggeri confermati in un volo");
  744. btn_TrovaConfermati.addActionListener(new ActionListener() {
  745. public void actionPerformed(ActionEvent e) {
  746. // Chiediamo e verifichiamo input
  747. String codice_input = JOptionPane.showInputDialog(null, "Inserisci il codice del volo:");
  748. if (codice_input != null) {
  749. int codice_input_int = Integer.parseInt(codice_input);
  750. stampaConfermati(codice_input_int,Oggi);
  751. }
  752. }
  753. });
  754. btn_TrovaConfermati.setBounds(10, 46, 571, 23);
  755. panelimpostazioni.add(btn_TrovaConfermati);
  756.  
  757. JButton btn_ControllaVoli = new JButton("Controlla voli di un passeggero");
  758. btn_ControllaVoli.addActionListener(new ActionListener() {
  759. public void actionPerformed(ActionEvent e) {
  760. // Chiediamo e verifichiamo input
  761. String codice_input = JOptionPane.showInputDialog(null, "Inserisci il nome del passeggero:");
  762. if (codice_input != null) {
  763. controllaVoliPasseggero(codice_input,Elenco,Oggi);
  764. }
  765. }
  766. });
  767. btn_ControllaVoli.setBounds(10, 68, 571, 23);
  768. panelimpostazioni.add(btn_ControllaVoli);
  769.  
  770. JButton btn_PrenotaVolo = new JButton("Aggiungi prenotazione di un volo");
  771. btn_PrenotaVolo.addActionListener(new ActionListener() {
  772. public void actionPerformed(ActionEvent e) {
  773. // Chiediamo e verifichiamo input
  774. String codice_input_p = JOptionPane.showInputDialog(null, "Inserisci il nome del passeggero:");
  775. String codice_input_cv = JOptionPane.showInputDialog(null, "Inserisci il codice del volo:");
  776. if ((codice_input_p != null) && (codice_input_cv != null)) {
  777. int codice_input_cv_int = Integer.parseInt(codice_input_cv);
  778. prenotaVolo(codice_input_p,codice_input_cv_int,Elenco,Oggi);
  779. popolaJTableOggi(Oggi);
  780. }
  781. }
  782. });
  783. btn_PrenotaVolo.setBounds(10, 90, 571, 23);
  784. panelimpostazioni.add(btn_PrenotaVolo);
  785.  
  786. JButton btn_AcquistaBiglietto = new JButton("Acquista biglietto di un volo prenotato");
  787. btn_AcquistaBiglietto.addActionListener(new ActionListener() {
  788. public void actionPerformed(ActionEvent e) {
  789. // Chiediamo e verifichiamo input
  790. String codice_input_p = JOptionPane.showInputDialog(null, "Inserisci il nome del passeggero:");
  791. String codice_input_cv = JOptionPane.showInputDialog(null, "Inserisci il codice del volo:");
  792. if ((codice_input_p != null) && (codice_input_cv != null)) {
  793. int codice_input_cv_int = Integer.parseInt(codice_input_cv);
  794. compraBiglietto(codice_input_p,codice_input_cv_int,Oggi);
  795. popolaJTableOggi(Oggi);
  796. }
  797. }
  798. });
  799. btn_AcquistaBiglietto.setBounds(10, 113, 571, 23);
  800. panelimpostazioni.add(btn_AcquistaBiglietto);
  801.  
  802. JButton btn_SalvaChiusura = new JButton("Salva automaticamente a chiusura software");
  803. btn_SalvaChiusura.setBounds(10, 135, 535, 23);
  804. panelimpostazioni.add(btn_SalvaChiusura);
  805.  
  806. JLabel lblNewLabel_1 = new JLabel("Programma realizzato da Davide Jose' Paci");
  807. lblNewLabel_1.setHorizontalAlignment(SwingConstants.RIGHT);
  808. lblNewLabel_1.setBounds(10, 179, 571, 14);
  809. panelimpostazioni.add(lblNewLabel_1);
  810.  
  811. JCheckBox cb_SalvaChiusura = new JCheckBox("");
  812. cb_SalvaChiusura.addActionListener(new ActionListener() {
  813. public void actionPerformed(ActionEvent e) {
  814. if (cb_SalvaChiusura.isSelected()) salvaChiusura = true; else salvaChiusura = false;
  815. }
  816. });
  817. cb_SalvaChiusura.setBounds(551, 135, 30, 23);
  818. panelimpostazioni.add(cb_SalvaChiusura);
  819.  
  820. JLabel lblNewLabel_2 = new JLabel("Impostazioni");
  821. lblNewLabel_2.setFont(new Font("Dialog", Font.PLAIN, 14));
  822. lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
  823. lblNewLabel_2.setBounds(0, 0, 591, 35);
  824. panelimpostazioni.add(lblNewLabel_2);
  825.  
  826.  
  827. JButton btn_indietro2 = new JButton("");
  828. btn_indietro2.addActionListener(new ActionListener() {
  829. public void actionPerformed(ActionEvent e) {
  830.  
  831. panelimpostazioni.setVisible(false);
  832. panelimpostazioni.setEnabled(false);
  833. panelprenotazioni.setVisible(true);
  834. panelprenotazioni.setEnabled(true);
  835. btn_Carica.setVisible(true);
  836. btn_Salva.setVisible(true);
  837. }
  838. });
  839. btn_indietro2.setIcon(new ImageIcon(GUI.class.getResource("/icons/previous.png")));
  840. btn_indietro2.setBounds(10, 216, 89, 34);
  841. panelimpostazioni.add(btn_indietro2);
  842.  
  843. JButton btn_avanti2 = new JButton("");
  844. btn_avanti2.addActionListener(new ActionListener() {
  845. public void actionPerformed(ActionEvent e) {
  846. panelimpostazioni.setVisible(false);
  847. panelimpostazioni.setEnabled(false);
  848. panelvoli.setVisible(true);
  849. panelvoli.setEnabled(true);
  850. btn_Carica.setVisible(true);
  851. btn_Salva.setVisible(true);
  852. }
  853. });
  854. btn_avanti2.setIcon(new ImageIcon(GUI.class.getResource("/icons/next.png")));
  855. btn_avanti2.setBounds(492, 216, 89, 34);
  856. panelimpostazioni.add(btn_avanti2);
  857. }
  858. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement