2010-07-11 2 views
0
public final class BrowserTopComponent extends TopComponent implements ActionListener, ChangeListener, LookupListener{ 

    public BrowserTopComponent() { 
     initComponents(); 
     setName(NbBundle.getMessage(BrowserTopComponent.class, "CTL_BrowserTopComponent")); 
     setToolTipText(NbBundle.getMessage(BrowserTopComponent.class, "HINT_BrowserTopComponent")); 
//  setIcon(ImageUtilities.loadImage(ICON_PATH, true)); 

     Browser1 fff = new Browser1(); 
     associateLookup(Lookups.singleton(fff)); 
    } 

    private Lookup.Result result = null; 

    @Override 
    public void componentOpened() { 
     result = Utilities.actionsGlobalContext().lookupResult(Browser1.class); 
     result.addLookupListener (this); 
    } 

    @Override 
    public void componentClosed() { 
     result.removeLookupListener (this); 
     result = null; 
    } 

    private void navButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    fff.navgiateTo(); // NET BEAN COMPLAINS AT THIS LINE. 
    } 

toutes les raisons possibles pour lesquelles je ne peux pas utiliser fff.navigateTo(); Mais quand fff.navigateTo() est dans le constructeur de BrowserTopComponent, ça marche bien! Alors pourquoi ne puis-je pas l'avoir en dehors du constructeur?Impossible d'accéder aux méthodes de la classe fournisseur

Dans mon module Browser (qui charge 3ème partie JAR), j'ai la classe suivante:

package my.app.browser 
import bunch.of.3rd.party.stuff 
public class Browser1 { 

    private String url; 

    public void navigateTo() { 

     System.out.println(url); 
    } 
} 

Répondre

1

Cela ressemble à un problème de cadrage. fff est déclaré localement dans le constructeur. Dans navButtonActionPerformed, il n'est pas déclaré du tout. Cela peut être dû à la façon dont vous avez intercepté le code, mais si le message d'erreur implique que fff n'est pas déclaré, essayez de déclarer "Browser fff" au niveau de la classe. Par exemple,

class BrowserTopComponent ... { 

    Browswer fff = new Browser(); 

    BrowserTopComponent() { 
    initComponents(); 
    } 

    private void navButtonActionPerformed(ActionEvent evt) { 
    fff.navigateTo(); 
    } 

} 
Questions connexes