一个很小白的java问题

放纵的纯粹 2015-04-09 04:27:27

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).
...全文
205 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
飏飏一蝶 2015-04-09
  • 打赏
  • 举报
回复
去看看一般内部类的知识点。 一般内部类的实例存在必须依附于外部类的实例。 因此你非要使用这个内部类的实例,可以这样改

MyPanel mp=new wb().new MyPanel();
-阿克蒙德- 2015-04-09
  • 打赏
  • 举报
回复
移动到下面,那MyPanel 就定义在main方法里了,成为了内部类,访问不到panel

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧