Не удается получить доступ к методам класса провайдера - PullRequest
0 голосов
/ 11 июля 2010
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.
    }

любые возможные причины, по которым я не могу использовать fff.navigateTo (); Но когда fff.navigateTo () находится внутри конструктора BrowserTopComponent, он работает отлично! Так почему я не могу иметь его вне конструктора?

В моем модуле Browser (который загружает сторонний JAR) у меня есть следующий класс:

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

    private String url;

    public void navigateTo() {

        System.out.println(url);
    }
}

1 Ответ

1 голос
/ 11 июля 2010

Это похоже на проблему с ограничениями. fff объявлен локально в конструкторе. В navButtonActionPerformed это вообще не объявлено. Это может быть связано с тем, как вы взяли код, но если сообщение об ошибке подразумевает, что fff не объявлен, попробуйте объявить «Browser fff» на уровне класса. Например,

class BrowserTopComponent ... {

  Browswer fff = new Browser();

  BrowserTopComponent() {
    initComponents();
  }

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...