当前位置: 代码迷 >> Java相关 >> 一个很小白的java有关问题
  详细解决方案

一个很小白的java有关问题

热度:100   发布时间:2016-04-22 20:21:51.0
一个很小白的java问题

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();


  相关解决方案