Java 为什么我被告知不能从静态上下文引用非静态变量?
我正在创建一个按钮,当点击它时,它将直接进入一个网站。但是我的代码有一个错误。错误表示无法从静态上下文引用非静态变量Java 为什么我被告知不能从静态上下文引用非静态变量?,java,swing,hyperlink,jframe,jbutton,Java,Swing,Hyperlink,Jframe,Jbutton,我正在创建一个按钮,当点击它时,它将直接进入一个网站。但是我的代码有一个错误。错误表示无法从静态上下文引用非静态变量 public static void main(String[] args) throws Exception { JFrame frame = new JFrame("JLinkButton"); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().a
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("JLinkButton");
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add("Center", new AnotherLinkButton("www.google.com"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocation(100, 100);
frame.setVisible(true);
}
如果正确定义了另一个链接按钮,则该代码看起来很好 您可能有这样的代码:
class Main {
class AnotherLinkButton {
}
}
要创建另一个链接按钮的实例,您需要一个主链接的实例。请尝试以下方法:
class Main {
static class AnotherLinkButton {
}
}
这使得
AnotherLinkButton
独立于Main
始终发布给出错误消息和完整消息的行。抱歉..以下是行:frame.getContentPane().add(“中心”,新的AnotherLinkButton(“www.google.com”)+1他可能用class
定义了另一个链接按钮,而不是static class
@Aaron,但我认为这可能会给出不同的错误消息。我猜AnotherLinkButton有一个构造函数或其他真正导致问题的东西。如果该类是主类的内部类,它会得到一个非静态字段,该字段引用了主类,但在静态上下文中不可用。这就是错误所在。@Aaron,刚刚测试过。我看到了这个错误,没有可访问的X类型的封闭实例。必须使用类型为X的封闭实例(例如X.new A(),其中X是X的实例)来限定分配。
是否使用与Stepher22相同的Java版本?