CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

请大家帮我看看这段代码(关于CardLayout的)为什么不能执行,谢谢。

楼主fxfzx(虾米)2004-04-03 23:49:02 在 Java / J2SE / 基础类 提问

代码如下:  
  import   java.awt.*;  
  import   java.applet.*;  
  import   java.awt.event.*;  
  class     Mycanvas   extends   Canvas  
  {  
  int   x,   y;  
  Mycanvas(int   a,int   b)  
  {  
  x=a;y=b;  
          getSize();  
  }  
  public   void   paint(Graphics   g)  
  {  
  g.setColor(Color.red);  
  g.fillOval(50,50,4*x,4*y);  
  g.drawString("我是第"+x,20,290);  
  }  
  public   Dimension   getPreferredSize()  
  {return   new   Dimension(200,100);}  
  }  
  public   class   Example12_2   extends   Applet   implements   ActionListener  
  {  
  CardLayout   mycard;  
  Button   bu1,bu2,bu3;  
  Mycanvas   mycanvas[];  
  Panel   p1;  
  public   void   init()  
  {  
  setLayout(new   BorderLayout());//applet的布局管理器是Border  
  mycard=new   CardLayout();  
  p1=new   Panel();  
  p1.setLayout(mycard);//面板的布局为card,这一行有问题  
                                                        ^^^^^^^^^^^^^^^^^^^^  
  mycanvas=new   Mycanvas[20];  
  for(int   i=1;i<=20;i++)  
  {  
  mycanvas[i]=new   Mycanvas(i,i);  
  p1.add(mycanvas[i]);  
  }  
   
  bu1=new   Button("first");bu1.addActionListener(this);  
  bu2=new   Button("next");   bu2.addActionListener(this);  
  bu3=new   Button("last   one");bu3.addActionListener(this);  
  Panel   p2=new   Panel();  
  p2.add(bu1);p2.add(bu2);p2.add(bu3);  
  add(p1,"Center");  
  add(p2,"South");  
  }  
  public   void   actionPerformed(ActionEvent   e)  
  {  
  if(e.getSource()==bu1)  
  {mycard.first(p1);}  
  else   if(e.getSource()==bu2)  
  {mycard.next(p1);}  
  else   if(e.getSource()==bu3)  
  {mycard.last(p1);}  
  }  
  }  
   
  这是书上的一个例子,通过编译了,但是在用appletviewer浏览它的html文件时出现错误。请大家帮忙看看,谢谢。  
  问题点数:30、回复次数:4Top

1 楼yellow007(乱马007)回复于 2004-04-04 00:52:38 得分 30

我觉得应该把每个canvas[i]放进一个panel[i],再将panel[i]放进panel1中  
  Top

2 楼fxfzx(虾米)回复于 2004-04-04 07:58:46 得分 0

试过了,可是不管用呢?Top

3 楼fxfzx(虾米)回复于 2004-04-04 08:15:41 得分 0

解决了。  
  竟然是把p1.setLayout(mycard);//面板的布局为card,这一行有问题  
  移到  
  for(int   i=1;i<=20;i++)  
  {  
          mycanvas[i]=new   Mycanvas(i,i);  
          p1.add(mycanvas[i]);  
  }  
  的后面。  
  为什么会这样?  
  Top

4 楼fxfzx(虾米)回复于 2004-04-06 18:21:59 得分 0

大概Java就这样吧Top

相关问题

  • 大家帮我看看代码为什么不执行呀
  • 帮我看看这段代码?执行的时候有问题?
  • 大家帮我看看代码,为什么执行不了啊?
  • VB.NET能否用代码执行代码?
  • 动态执行代码
  • 自动执行代码
  • 各位大侠,帮我看看为什么代码执行错误!!!
  • 大家帮我看看这段代码 , 为什么不能在sql server执行
  • 帮忙看看这段代码 在一个DBGrid上右键菜单执行时...
  • 请大家帮我看看这代码为什么只执行了1次?

关键词

  • cardlayout
  • mycanvas
  • bu
  • applet
  • import java

得分解答快速导航

  • 帖主:fxfzx
  • yellow007

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo