Vi spiego il mio problema, stavo creando un Menu in Java utilizzando i componenti JMenuBar, JMenu ecc... La prima funzione è quella dell' INSERIMENTO, ossia per inserire gli oggetti nell'array, il problema si presenta quando usa la funzione RICERCA. Partiamo dal presupposto che non posso e non voglio mettere tutti i metodi nello stesso frame, quindi per ricerca ho creato una nuova classe, che si apre quando viene richiesta. Solo che quando passo l'array di oggetti, viene passato vuoto, senza i dati precedentemente inseriti. Ora vi mostro la parte di codice che ci interessa:
Classe principale:
public class Menu {
private JFrame frame;
private Ricerca x;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
private JTextField textField_3;
protected Mensola volumi=new Mensola();
...
...
mntmRicerca.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0)
{
//apro il frame ricerca
frame.setVisible(false);
x=new Ricerca();
}
});
Classe che fa la ricerca:
public class Ricerca {
private JFrame frame;
private JLabel lblInserisciTitolo;
private JTextField textField;
private JLabel label_1;
private JTextField textField_1;
private Menu a=new Menu();
frame.setVisible(true);
...
...
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0)
{
String tit = null,aut = null;
boolean flag=false; int i=0;
if(textField.getText().length()==0) { JOptionPane.showMessageDialog(null, "INSERISCI IL TITOLO!"); flag=true; }
else tit=textField.getText();
if(textField_1.getText().length()==0) { JOptionPane.showMessageDialog(null, "INSERISCI L'AUTORE!"); flag=true; }
else aut=textField_1.getText();
Libro find=new Libro(tit,aut,0);
Libro[] volumi1=a.volumi.getarrayvolumi();
if(a.volumi.Ricerca(find, volumi1)!=-1) flag=true;
if(flag==true) JOptionPane.showMessageDialog(null, "Libro trovato");
else JOptionPane.showMessageDialog(null, "Libro non trovato");
}
});
}