Faccio prima forse se posto il codice del programma:
codice:
public class Impiegato extends JFrame implements ActionListener
{
private Socket cliente;
private JPanel $pannello_principale,$pannello1,$pannello2,$pannello_bottoni;
private JButton $button1,$button2,$button3,$button4,$button5,$button6,$button7;
private Container $cont;
private ObjectOutputStream oos;
private ObjectInputStream ois;
private LinkedList<String> lista_persone_coinvolte;
private JTextField $inserimento_id,$inserimento_persona,$inserimento_data,$ricerca_inserimento_id;
private JComboBox $selezione_tipo,$selezione_stato;
private JLabel $testo1,$testo2,$testo3,$testo4,$testo5,$testo6;
public Impiegato()
{
this.avvia();
$cont=this.getContentPane();
$pannello_principale=this.creaPannello();
$cont.add($pannello_principale);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(1000,500);
}
public JPanel creaPannello()
{
$pannello1=new JPanel();
$pannello2=new JPanel();
$pannello_bottoni=new JPanel();
$button1=new JButton("Inserisci pratica");
$button1.setActionCommand("INSERISCI");
$button1.addActionListener(this);
$button1.setSize(100,100);
$button2=new JButton("Cerca pratica per id");
$button2.setActionCommand("RICERCA_PRATICA_ID");
$button2.addActionListener(this);
$button2.setSize(100,100);
$button3=new JButton("Cerca pratica per persona coinvolta");
$button3.setActionCommand("RICERCA_PERSONE");
$button3.addActionListener(this);
$button3.setSize(100,100);
$button4=new JButton("Modifica stato pratica");
$button4.setActionCommand("MODIFICA_STATO");
$button4.addActionListener(this);
$button4.setSize(100,100);
$button5=new JButton("Cerca pratica per stato");
$button5.setActionCommand("CERCA_PER_STATO");
$button5.addActionListener(this);
$button5.setSize(100,100);
$button6=new JButton("Visualizza percentuale pratica in attesa di giudizio");
$button6.setActionCommand("CERCA_PRATICHE_GIUDIZIO");
$button6.addActionListener(this);
$button6.setSize(100,100);
$button7=new JButton("Conteggia pratiche");
$button7.setActionCommand("CONTEGGIO");
$button7.addActionListener(this);
$button7.setSize(100,100);
$pannello_bottoni.add($button1);
$pannello_bottoni.add($button2);
$pannello_bottoni.add($button3);
$pannello_bottoni.add($button4);
$pannello_bottoni.add($button5);
$pannello_bottoni.add($button6);
$pannello_bottoni.add($button7);
$pannello_bottoni.setLayout(new FlowLayout());
$pannello1.add($pannello_bottoni);
$pannello1.add($pannello2);
$pannello1.setLayout(new GridLayout(2,1));
return $pannello1;
}
public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable(){public void run(){new Impiegato();}});
}
public void avvia()
{
try
{
cliente=new Socket("localhost",2222);
oos=new ObjectOutputStream(cliente.getOutputStream());
ois=new ObjectInputStream(cliente.getInputStream());
}
catch(Exception e)
{
System.err.println(e);
}
}
public JPanel creaPannelloInserimento()
{
$inserimento_id=new JTextField();
$inserimento_data=new JTextField();
$inserimento_persona=new JTextField();
JPanel $pannello_inserimento=new JPanel();
$testo1=new JLabel("Selezionare la tipologia");
$testo2=new JLabel("Selezionare lo stato");
$testo3=new JLabel("Inserisci identificativo pratica");
$testo4=new JLabel("Inserisci data nel formato --/--/----");
$testo5=new JLabel("Inserisci presona/societa coinvolta nella pratica nel formato nome cognome:");
$selezione_tipo=new JComboBox();
$selezione_stato=new JComboBox();
$selezione_tipo.addItem("Decreto Ingiuntivo");
$selezione_tipo.addItem("Iscrizione a ruolo");
$selezione_tipo.addItem("Notifica");
$selezione_stato.addItem("Inserita");
$selezione_stato.addItem("Archiviata");
$selezione_stato.addItem("Attesa di Giudizio");
$selezione_stato.addItem("Lavorazione");
$pannello_inserimento.add($testo3);
$pannello_inserimento.add($inserimento_id);
$pannello_inserimento.add($testo1);
$pannello_inserimento.add($selezione_tipo);
$pannello_inserimento.add($testo2);
$pannello_inserimento.add($selezione_stato);
$pannello_inserimento.add($testo4);
$pannello_inserimento.add($inserimento_data);
$pannello_inserimento.add($testo5);
$pannello_inserimento.add($inserimento_persona);
JButton $invia_persona=new JButton("Inserisci persona");
$invia_persona.setActionCommand("INSERISCI_PERSONA");
$invia_persona.addActionListener(this);
$pannello_inserimento.add($invia_persona);
JButton $invia_pratica=new JButton("Crea pratica");
$invia_pratica.setActionCommand("INVIA_PRATICA");
$invia_pratica.addActionListener(this);
$pannello_inserimento.add($invia_pratica);
$pannello_inserimento.setLayout(new GridLayout(8,2));
return $pannello_inserimento;
}
public JPanel creaPannelloRicerca()
{
JPanel $pannello_ricerca=new JPanel();
$testo6=new JLabel("Inserire id pratica da ricercare");
$ricerca_inserimento_id=new JTextField();
JButton $invia_id=new JButton("Cerca");
$invia_id.setActionCommand("CERCA_ID");
$invia_id.addActionListener(this);
$pannello_ricerca.add($testo6);
$pannello_ricerca.add($ricerca_inserimento_id);
$pannello_ricerca.add($invia_id);
$pannello_ricerca.setLayout(new GridLayout(2,2));
return $pannello_ricerca;
}
public void actionPerformed(ActionEvent e)
{
String comand=e.getActionCommand();
if(comand.equals("INSERISCI"))
{
$pannello2.add(this.creaPannelloInserimento());
$button1.setEnabled(false);
this.setVisible(true);
lista_persone_coinvolte=new LinkedList<String>();
}
if(comand.equals("INSERISCI_PERSONA"))
{
/*Dobbiamo andare a recuperare il nome della persona inserita nella JTextField */
if($inserimento_persona.getText().equals(""))
{
JOptionPane.showMessageDialog(this,"Nessuna persona inserita");
}
else
{
lista_persone_coinvolte.add($inserimento_persona.getText());
JOptionPane.showMessageDialog(this,"Persona Inserita");
$inserimento_persona.setText("");
}
}
if(comand.equals("INVIA_PRATICA"))
{
try
{
oos.writeObject(1);
}
catch(Exception err)
{
System.err.println(err);
}
}
if(comand.equals("RICERCA_PRATICA_ID"))
{
$pannello2.add(this.creaPannelloRicerca());
$button1.setEnabled(true);
$button2.setEnabled(false);
this.setVisible(true);
lista_persone_coinvolte=new LinkedList<String>();
}
}
}
Come puoi vedere nei vari actionListener a seconda dei bottoni che vado a premere deve variare solo il pannello2 mentre il pannello1 rimane sempre lo stesso.