franco7scala
Utente Attivo
- Messaggi
- 40
- Reazioni
- 0
- Punteggio
- 26
ciao,
ho creato una lista concatenata che contiene un metodo remove
poi ho creato una classe gestore che utilizza la lista e questo metodi cosi:
dopo ho fatto un main che verificasse il funzionamento
e funziona alla perfezione.
alla fine ho creato un interfaccia grafica che utilizza questo metodo e qui vengono i problemi:
questa è la classe del frame dell'oggetto che devo eliminare.
però non mi rimuove dalla lista l'oggetto !!!!
come devo fare ???? sto impazzendo!!!!:evil:
grazie
ho creato una lista concatenata che contiene un metodo remove
Codice:
public void remove(T x){
ListIterator<T> it=new ListaConcatenata.ListItr();
it.next();
boolean trovato=false;
if(testa.info==x){removeFirst();trovato=true;}
else{
for(T e: this){
if(it.hasNext()){
if(it.next()==x)it.remove();trovato=true;
}
}
}
if(!trovato)throw new NoSuchElementException();
}
Codice:
public void remove(Utente u){
lc.remove(u);
}
Codice:
public static void main(String[]args){
Gestore g = new Gestore();
try{
g.carica();
} catch(IOException e){
try {
g.salva();
} catch (IOException e1){e1.printStackTrace();}
}
Utente u1=new Utente("ROSSI","MARIO",123456);
Utente u2=new Utente("ROSSI","PAOLO",134567);
Utente u3=new Utente("MISSILE","CARMINE");
Utente u4=new Utente("XXXXXX","XXXXXXX",00000000);
g.add(u2);
g.add(u1);
g.add(u3);
g.addLast(u4);
System.out.println(g.toString());
System.out.println("Rimuovo carmine");
g.remove(u3);
System.out.println(g.toString());
System.out.println(g.size());
g.clear();
System.out.println(g.toString());
g.add(u2);
g.add(u1);
g.add(u3);
System.out.println(g.toString());
System.out.println("Salvo e carico");
try {
g.salva();
} catch (IOException e){e.printStackTrace();}
try {
g.carica();
} catch (IOException e) {e.printStackTrace();}
System.out.println(g.toString());
System.out.println("Fine");
}
e funziona alla perfezione.
alla fine ho creato un interfaccia grafica che utilizza questo metodo e qui vengono i problemi:
Codice:
private class FrameRemoveUtente extends JFrame implements ActionListener{
private static final long serialVersionUID = 13200L;
private JTextField cognome, nome;
private JButton ok;
public FrameRemoveUtente(){
setTitle("Inserisci dati utente da eliminare");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener( new WindowAdapter(){public void windowClosing(WindowEvent e){
if(verificaUscita()){
gestore.remove(new Utente(LLGUI.this.cognome.toUpperCase(), LLGUI.nome.toUpperCase()));
}
cognome.setText("");
nome.setText("");
cognomeOk=false;
nomeOk=false;
FrameRemoveUtente.this.setVisible(false);
}
});
cognomeOk=false;
nomeOk=false;
JPanel p=new JPanel();
p.add( new JLabel("Cognome", JLabel.RIGHT) );
p.add( cognome=new JTextField("",12) );
p.add( new JLabel("Nome", JLabel.RIGHT) );
p.add( nome=new JTextField("",12) );
p.add( ok=new JButton("OK") );
add(p);
cognome.addActionListener(this);
nome.addActionListener(this);
ok.addActionListener(this);
setLocation(250,340);
setSize(400,150);
}
@SuppressWarnings("static-access")
public void actionPerformed(ActionEvent e){
if(e.getSource()==cognome){
LLGUI.this.cognome=cognome.getText();
LLGUI.this.cognomeOk=true;
}
if(e.getSource()==nome){
LLGUI.this.nome=nome.getText();
LLGUI.this.nomeOk=true;
}
else if(e.getSource()==ok){
if(verificaUscita()){
try{
gestore.remove(new Utente(LLGUI.this.cognome.toUpperCase(), LLGUI.nome.toUpperCase()));
String del = new Utente(LLGUI.this.cognome.toUpperCase(), LLGUI.nome.toUpperCase()).toString() ;
area.setText(area.getText().replaceAll(del + "\n", ""));
}catch(NoSuchElementException e1){
JOptionPane.showMessageDialog(null,"Utente non trovato!");
}
this.setVisible(false);
cognome.setText("");
nome.setText("");
}
}
}
}
però non mi rimuove dalla lista l'oggetto !!!!
come devo fare ???? sto impazzendo!!!!:evil:
grazie