gpt4 book ai didi

java - 无法访问提供者类的方法

转载 作者:行者123 更新时间:2023-12-01 16:03:28 26 4
gpt4 key购买 nike

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 的构造函数内时,它工作得很好!那么为什么我不能将它放在构造函数之外呢?

在我的浏览器模块(加载第 3 方 JAR)中,我有以下类:

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

private String url;

public void navigateTo() {

System.out.println(url);
}
}

最佳答案

这看起来像是一个范围界定问题。 fff 在构造函数中本地声明。在 navButtonActionPerformed 中,它根本没有声明。这可能是由于您剪切代码的方式所致,但如果错误消息暗示未声明 fff,请尝试在类级别声明“浏览器 fff”。例如,

class BrowserTopComponent ... {

Browswer fff = new Browser();

BrowserTopComponent() {
initComponents();
}

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

}

关于java - 无法访问提供者类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com