salve ragazzi ho un piccolo problema che non riesco a risolvere.
ho due classi e una estende l'altra.
credo di non aver chiara l'implementazione dell'ereditarietà anche se concettualmente pernso di averla capita.
facendo in questo modo mi da un errore nella classe applicazioneCentroControllo
in particolare non trova il costruttore dell applicazione grafica...come dovrei fare?grazie anticipatamente
la mia idea era quella di fare una sola applicazione grafica per entrambe e ho fatto così:
vi posto anche le classi e i relativi maincodice:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CentroControlloGUI extends JFrame implements ActionListener{ private Container c; private CentroControlloMilitare cc; private JButton b1,b2,b3,b4,b5,b6; public CentroControlloGUI(CentroControlloMilitare cc) { this.cc=cc; setTitle(" Centro di controllo" + cc.getID()); setLayout(new GridLayout(2,2)); c=new Container(); c=getContentPane(); b1 = new JButton("inserisci volo"); b2= new JButton("cancella volo"); c.add(b1); c.add(b2); b1.addActionListener(this); b2.addActionListener(this); if(cc instanceof CentroControlloMilitare) { b3= new JButton("visualizza partenze"); b4= new JButton("visualizza arrivi"); b5= new JButton("visualizza voli per tipologia"); b6= new JButton("salva report"); c.add(b3); c.add(b4); c.add(b5); c.add(b6); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); } pack(); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { String message=null; String id=null; String arr=null; String par=null; String tipologia=null; String report= "REPORT: \n"; if(e.getSource()==b1) { id=JOptionPane.showInputDialog("inserisci il codice del volo: "); par=JOptionPane.showInputDialog("inserisci l'aeroporto di partenza del volo: "); arr=JOptionPane.showInputDialog("inserisci l'aeroporto di destinazione del volo: "); tipologia=JOptionPane.showInputDialog("inserisci la tipologia del volo: "); Volo v = new Volo(id,par,arr,tipologia); message=cc.inserisciVolo(v); JOptionPane.showMessageDialog(null,message); } else if(e.getSource()==b2) { id=JOptionPane.showInputDialog("inserisci il codice del volo: "); message=cc.cancellaVolo(id); JOptionPane.showMessageDialog(null,message); } else if(e.getSource()==b3) { par=JOptionPane.showInputDialog("inserisci aeroporto di partenza "); message=cc.visualizzaPartenze(par); JOptionPane.showMessageDialog(null,message); report = report+ message + "\n"; } else if(e.getSource()==b4) { arr=JOptionPane.showInputDialog("inserisci aeroporto di destinazione "); message=cc.visualizzaArrivi(arr); JOptionPane.showMessageDialog(null,message); report = report+ message + "\n"; } else if(e.getSource()==b5) { tipologia=JOptionPane.showInputDialog("inserisci tipologia di volo "); message=cc.visualizzaVoliPerTipologia(tipologia); JOptionPane.showMessageDialog(null,message); report=report+message + "\n"; } } }
codice:import java.net.*; import java.io.*; public class CentroControllo{ protected Integer id; protected int porta; protected String indirizzo; public CentroControllo(Integer id,int porta,String indirizzo) { this.porta=porta; this.id=id; this.indirizzo=indirizzo; } public Integer getID() { return id; } public String getIndirizzo() { return indirizzo; } public int getPorta() { return porta; } public String inserisciVolo(Volo v) { String message=""; try{ Socket s = new Socket(indirizzo,porta); ObjectInputStream is = new ObjectInputStream(s.getInputStream()); ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream()); os.writeObject(1); os.writeObject(v); message=(String)is.readObject(); s.close(); is.close(); os.close(); }catch(Exception e){ System.err.println(e.getMessage()); } return message; } public String cancellaVolo(String ID) { String message=""; try{ Socket s = new Socket(indirizzo,porta); ObjectInputStream is = new ObjectInputStream(s.getInputStream()); ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream()); os.writeObject(2); os.writeObject(ID); message=(String)is.readObject(); s.close(); is.close(); os.close(); }catch(Exception e){ System.err.println(e.getMessage()); } return message; } }codice:import java.net.*; import java.io.*; public class CentroControlloMilitare extends CentroControllo{ public CentroControlloMilitare(Integer id,int porta,String indirizzo) { super(id,porta,indirizzo); } public String visualizzaPartenze(String aeroporto) { String message=""; try{ Socket s = new Socket(indirizzo,porta); ObjectInputStream is = new ObjectInputStream(s.getInputStream()); ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream()); os.writeObject(3); os.writeObject(aeroporto); message=(String)is.readObject(); s.close(); is.close(); os.close(); }catch(Exception e){ System.err.println(e.getMessage()); } return message; } public String visualizzaArrivi(String aeroporto) { String message=""; try{ Socket s = new Socket(indirizzo,porta); ObjectInputStream is = new ObjectInputStream(s.getInputStream()); ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream()); os.writeObject(4); os.writeObject(aeroporto); message=(String)is.readObject(); s.close(); is.close(); os.close(); }catch(Exception e){ System.err.println(e.getMessage()); } return message; } public String visualizzaVoliPerTipologia(String tipologia) { String message=""; try{ Socket s = new Socket(indirizzo,porta); ObjectInputStream is = new ObjectInputStream(s.getInputStream()); ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream()); os.writeObject(5); os.writeObject(tipologia); message=(String)is.readObject(); s.close(); is.close(); os.close(); }catch(Exception e){ System.err.println(e.getMessage()); } return message; } }codice:public class ApplicazioneCentroControllo { public static void main(String args[]) { try{ Integer id=null; id=id.parseInt(args[0]); CentroControllo cc = new CentroControllo(id,12345,"localhost"); CentroControlloGUI g = new CentroControlloGUI(cc); }catch(ArrayIndexOutOfBoundsException e){ System.err.println("inserisci l'id del centro di controllo"); } } } public class ApplicazioneControlloMilitare{ public static void main(String args[]) { try{ Integer id=null; id=id.parseInt(args[0]); CentroControlloMilitare cc = new CentroControlloMilitare(id,12345,"localhost"); CentroControlloGUI g = new CentroControlloGUI(cc); }catch(ArrayIndexOutOfBoundsException e){ System.err.println("inserisci l'id del centro di controllo"); } } }

Rispondi quotando
