编译简单程序时遇到问题。我两天前开始使用Swing库,所以我还不够好。 错误是:“无法从静态上下文中引用非静态变量”,称为“WindowsEraser listener = new WindowsEraser();”。 有什么问题?
public class prog9{
public class WindowEraser extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
public static void main(String[] args){
JFrame frame = new JFrame("Frame with buttons");
frame.setSize(400,400);
JLabel label = new JLabel("I'm a Window");
frame.add(label);
WindowEraser listener = new WindowEraser();
frame.addWindowListener(listener);
frame.setVisible(true);
}
}
答案 0 :(得分:0)
使WindowEraser
静态,否则main()
无法访问
答案 1 :(得分:0)
你也可以用这种方式实例化WindowEraser():
curl -XGET -G localhost/test
-H 'Content-Type: application/json'
-H 'Accept: application/json'
-d '{ "entities": [{ "id": 3, "email": "test@abc.com" }] }'
答案 2 :(得分:-1)
您不能从静态上下文引用非静态字段/类/方法(因为静态上下文可以更早地初始化,然后就不会引用非静态实体)
你应该使WindowEraser类静态:
public static class WindowEraser extends WindowAdapter