|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2006
Messaggi: 290
|
[JAVA] JComboBox fa il clear di tutti gli altri campi
Ciao
Premetto che sono un newbie su Java e mi dilettando nella programmazione di un programmino. Ho un problema che ho capito perchè accade ma non riesco a trovare il modo di risolvere. Mi spiego meglio: Ho un JButton "padre" che come azione mi apre due JPanel uno contenente 1 Form (per l'immissione dei dati personali) e l'altro contenente altri JButton che eseguono azioni sul DB (salva, query etc). In questo form ho 3 JComboBox che permettono di selezionare dati da una lista gia esistente. Tutto sembra ok tranne il fatto che quando faccio un'azione sulla JComboBox (es selezione di oggetto dalla lista) l'intero form si ripulisce e la stessa JComboBox torna con il valore di default. Questo succede perchè all'inizio dell'azione del pulsante "padre" c'è la funzione p6.removeAll(); che in pratica "ripulisce" il JPanel figlio. Questa funzione l'avevo messa perchè senza di essa all'azione di scelta della JComboBox per qualche ragione l'intero form perde la formattazione che con tanta pazienza avevo fatto (tramite GridBagLayout). Ecco l'estratto dell'action del JButton: gestioneBTN.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { p2.removeAll(); p5.removeAll(); p6.removeAll(); .... definizione del form .... //Definizione combobox JLabel corso1L = new JLabel("Corso 1"); Vector corsiVEC1 = new Vector(); corsiVEC1 = elenco_corsi (); int conteggio = corsiVEC1.size(); final JComboBox corso1TF = new JComboBox(corsiVEC1); corso1TF.addActionListener(this); ... //definizione del layout GridBagLayout layoutTabDati = new GridBagLayout(); p6.setLayout(layoutTabDati); GridBagConstraints caratteristicheLayout = new GridBagConstraints(); .... p2.add(p6); p1.validate(); p2.validate(); p5.validate(); p6.validate(); repaint(); |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Ad occhio direi che il problema sia questa linea:
corso1TF.addActionListener(this); La combox box corso1tf spara un action event quando la selezione cambia. Il gestore degli eventi (this) cancella tutto e ricrea l'interfaccia, da cui la sparizione.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Mar 2006
Messaggi: 290
|
Grazie!!!
Avevi visto bene!!! Togliendo quella stringa funziona! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:07.