cn73
24-02-2004, 13:38
Mi sono scontrato con uno strano problema:
class RicercaBloccatiAction extends AbstractAction
{
JMenuItem tempItem ;
RicercaBloccatiAction()
{
super("Allegati bloccati");
}
public void actionPerformed(ActionEvent e)
{
tempItem = (JMenuItem)e.getSource();
...
....
TrovaAllegatiBloccatiFrame trovaAllegatiBloccatiFrame = new TrovaAllegatiBloccatiFrame(...);
tempItem.setEnabled(false);
System.out.println("appena disabilitato" + tempItem.getText());
desktop.add(trovaAllegatiBloccatiFrame);
trovaAllegatiBloccatiFrame.moveToFront();
trovaAllegatiBloccatiFrame.addInternalFrameListener(new InternalFrameAdapter()
{
public void internalFrameClosing(InternalFrameEvent ife) {
tempItem.setEnabled(true);
System.out.println("appena abilitato" + tempItem.getText());
svuotajInternalFrameVector();
}
});
}
}
Praticamente a fronte della scelta da un menu dovevo aprire alcune JInternalFrame e disabilitare
la relativa voce di menu...per poi rabilitarla alla chiusura. Bene, questo codice non mi funzionava!
tempItem puntava sempre all'ultimo menu, nonostante ogni voce avesse un
tempMenuItem.addActionListener(new RicercaBloccatiAction());
Ho dovuto creare una classe
class myListener implements InternalFrameListener {
JMenuItem menuItem;
public myListener(JMenuItem menuItem) {
this.menuItem = menuItem;
}
public void internalFrameClosing(InternalFrameEvent e) {
menuItem .setEnabled(true);
System.out.println("appena abilitato" + menuItem .getText());
svuotajInternalFrameVector();
}
public void internalFrameActivated(InternalFrameEvent e) {}
public void internalFrameClosed(InternalFrameEvent e) {}
public void internalFrameDeactivated(InternalFrameEvent e){}
public void internalFrameDeiconified(InternalFrameEvent e) {}
public void internalFrameIconified(InternalFrameEvent e) {}
public void internalFrameOpened(InternalFrameEvent e) {}
}
e aggiungre il listener (e non l'adapter) al frame:
myListener listener = new myListener(tempItem);
trovaAllegatiBloccatiFrame.addInternalFrameListener(listener);
Dato che nell'altro topic vi siete intrippati con i puntatori e le zone di memoria, mi sapete spiegare questa??
DIversa gestione dei puntatori negli adapter?'
class RicercaBloccatiAction extends AbstractAction
{
JMenuItem tempItem ;
RicercaBloccatiAction()
{
super("Allegati bloccati");
}
public void actionPerformed(ActionEvent e)
{
tempItem = (JMenuItem)e.getSource();
...
....
TrovaAllegatiBloccatiFrame trovaAllegatiBloccatiFrame = new TrovaAllegatiBloccatiFrame(...);
tempItem.setEnabled(false);
System.out.println("appena disabilitato" + tempItem.getText());
desktop.add(trovaAllegatiBloccatiFrame);
trovaAllegatiBloccatiFrame.moveToFront();
trovaAllegatiBloccatiFrame.addInternalFrameListener(new InternalFrameAdapter()
{
public void internalFrameClosing(InternalFrameEvent ife) {
tempItem.setEnabled(true);
System.out.println("appena abilitato" + tempItem.getText());
svuotajInternalFrameVector();
}
});
}
}
Praticamente a fronte della scelta da un menu dovevo aprire alcune JInternalFrame e disabilitare
la relativa voce di menu...per poi rabilitarla alla chiusura. Bene, questo codice non mi funzionava!
tempItem puntava sempre all'ultimo menu, nonostante ogni voce avesse un
tempMenuItem.addActionListener(new RicercaBloccatiAction());
Ho dovuto creare una classe
class myListener implements InternalFrameListener {
JMenuItem menuItem;
public myListener(JMenuItem menuItem) {
this.menuItem = menuItem;
}
public void internalFrameClosing(InternalFrameEvent e) {
menuItem .setEnabled(true);
System.out.println("appena abilitato" + menuItem .getText());
svuotajInternalFrameVector();
}
public void internalFrameActivated(InternalFrameEvent e) {}
public void internalFrameClosed(InternalFrameEvent e) {}
public void internalFrameDeactivated(InternalFrameEvent e){}
public void internalFrameDeiconified(InternalFrameEvent e) {}
public void internalFrameIconified(InternalFrameEvent e) {}
public void internalFrameOpened(InternalFrameEvent e) {}
}
e aggiungre il listener (e non l'adapter) al frame:
myListener listener = new myListener(tempItem);
trovaAllegatiBloccatiFrame.addInternalFrameListener(listener);
Dato che nell'altro topic vi siete intrippati con i puntatori e le zone di memoria, mi sapete spiegare questa??
DIversa gestione dei puntatori negli adapter?'