import java.awt.*;
public class wb{
public static void main(String[] args)
{
Frame w=new Frame();
w.setSize(300,400);
MyPanel mp=new MyPanel();
w.add(mp);
w.show();
}这个括号
class MyPanel extends Panel{
public void paint(Graphics g){
g.drawLine(30, 30, 100, 100);
}
}
这段程序,为什么当我把花括号移到最下面就会出现错误呢
import java.awt.*;
public class wb{
public static void main(String[] args)
{
Frame w=new Frame();
w.setSize(300,400);
MyPanel mp=new MyPanel();
w.add(mp);
w.show();
}
class MyPanel extends Panel{
public void paint(Graphics g){
g.drawLine(30, 30, 100, 100);
}
}
}
提示错误
No enclosing instance of type wb is accessible. Must qualify the allocation with an enclosing instance of type wb (e.g. x.new A() where x is an instance of wb).
------解决思路----------------------
移动到下面,那MyPanel 就定义在main方法里了,成为了内部类,访问不到panel
------解决思路----------------------
去看看一般内部类的知识点。
一般内部类的实例存在必须依附于外部类的实例。
因此你非要使用这个内部类的实例,可以这样改
MyPanel mp=new wb().new MyPanel();