Newsgroup: it.comp.java
Titolo: Trasformare una classe in file .java separato

Gentili iscritti,
In una classe ho la seguente classe:
class XmlEditorRileva implements CellEditorListener
{
  public void editingStopped(ChangeEvent e)
  {
  String value = m_treeEditor.getCellEditorValue().toString();
  System.out.println("nuovo valore:"+ value);
  if (m_editingNode != null)
  m_editingNode.setNodeValue(value);
  TreePath path = alberoXmlTag.getSelectionPath();
  if (path != null)
  {
    DefaultMutableTreeNode treeNode =
(DefaultMutableTreeNode)path.getLastPathComponent();
    treeNode.setUserObject(m_editingNode);
    modelloAlberoXmlTag.nodeStructureChanged(treeNode);
  }
  m_editingNode = null;
  }
  public void editingCanceled(ChangeEvent e)
  {
  	m_editingNode = null;
  }
}
e volevo semplicemente inserire questa classe in un file
XmlEditorRileva.java. Allora l'ho modificata aggiungendovi un
costruttore al quale passo i 4 parametri e la richiamo nel seguente
modo:
XmlEditorRilevaNodo pippo = new XmlEditorRileva(alberoXmlTag,
modelloAlberoXmlTag, m_treeEditor, m_editingNode);
class XmlEditorRileva implements CellEditorListener
{
  DefaultTreeModel m_model; // un semplice modello di dati ad albero
che implementa l'interfaccia TreeNodes
  DefaultTreeCellEditor m_treeEditor;
  Node m_editingNode;
  JTree m_tree;
  public XmlEditorRileva(JTree m_treeparam, DefaultTreeModel
parametrom_model, DefaultTreeCellEditor m_treeEditorparametro, Node
m_editingNodeparametro)
  {
  	m_tree = m_treeparam;
        m_model = parametrom_model;
     	m_treeEditor = m_treeEditorparametro;
     	m_editingNode = m_editingNodeparametro;
    }
... + i due metodi locali di prima. Peccato che in fase di esecuzione
quando modifico il nodo dell'albero mi segnala un mare di errori in
questa linea:
treeNode.setUserObject(m_editingNode);
Cosa sbaglio nel creare il file .java separato? Piu' che aggiungere un
costruttore al quale passo diversi parametri che assegno a variabili
globali di questa sottoclasse, cos'altro?
Grazie.
--
Paolo Guagliumi - ICQ 46580228
[ newsletter gratuita infosapere ] - 
http://web.tiscali.it/infosapere

 treeNode.setUserObject(m_editingNode);
Perchè non posti gli errori che ti da?
Senza elementi posso dirti che forse non ci sono gli import o magari la
classe
DefaultMutableTreeNode ha una qualche visibilita particolare che non
ti permette di usarla altrove?

ti permette di usarla altrove?
Ciao, grazie per l'interesse. Gli import penso ci siano tutti perchč
ho riportato nel secondo file .java creato tutti gli import del file
originale dal quale ho preso l'esempio. Comunque l'errore non e' di
compilazione, ma avviene a run-time. Qunado modifico il nodo, mi
segnala giusto qualche errore che riporto... non ci stanno tutti nella
finestra dos... 
Questo metodo di creazione di un file .java separato l'avevo gia'
usato da un'altra parte del programma e funzionava. Qui, invece, in 2
punti diverse, con 2 diverse classi che sono come sotto-classi del
listato originale, non riesco a separare queste sotto-classi e
renderle indipendenti dal file originale senza avere in fase di
esecuzione un mare di errori quando clicco sul nodo.
Ho visto in internet alcuni esempi... ho anche provato un po' "a caso"
con super, this...  ma nulla. Pazienza, vorra' dire che terro' queste
sottoclassi incluse nel file class originale. Ciao, grazie comunque.
s(VariableHeightLayoutCache.java:1108)
        at
javax.swing.tree.VariableHeightLayoutCache.getBounds(VariableHeightLa
youtCache.java:202)
        at
javax.swing.plaf.basic.BasicTreeUI.getPathBounds(BasicTreeUI.java:415
)
        at
javax.swing.plaf.basic.BasicTreeUI$FocusHandler.focusGained(BasicTree
UI.java:2668)
        at
javax.swing.plaf.basic.BasicTreeUI$FocusHandler.focusLost(BasicTreeUI
.java:2682)
        at
java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:168)
        at java.awt.Component.processFocusEvent(Component.java:4927)
        at java.awt.Component.processEvent(Component.java:4809)
        at java.awt.Container.processEvent(Container.java:1380)
        at java.awt.Component.dispatchEventImpl(Component.java:3526)
        at java.awt.Container.dispatchEventImpl(Container.java:1437)
        at java.awt.Component.dispatchEvent(Component.java:3367)
        at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja
va:1700)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeybo
ardFocusManager.java:709)
        at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
usManager.java:442)
        at java.awt.Component.dispatchEventImpl(Component.java:3396)
        at java.awt.Container.dispatchEventImpl(Container.java:1437)
        at java.awt.Component.dispatchEvent(Component.java:3367)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
        at java.awt.SentEvent.dispatch(SentEvent.java:50)
        at
java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentE
vent.dispatch(DefaultKeyboardFocusManager.java:140)
        at
java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocus
Manager.java:164)
        at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
usManager.java:494)
        at java.awt.Component.dispatchEventImpl(Component.java:3396)
        at java.awt.Container.dispatchEventImpl(Container.java:1437)
        at java.awt.Window.dispatchEventImpl(Window.java:1566)
        at java.awt.Component.dispatchEvent(Component.java:3367)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
        at java.awt.SequencedEvent.dispatch(SequencedEvent.java:105)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:443)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:190)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:144)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
        at
java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
