你这个Panel1是要add到什么container中去?看看你其它的代码,确定那个Container中是否已经有了别的Layout,是否可以支持这种语法的add。

解决方案 »

  1.   

    to luodi
    一定要使用Container对象吗,为什么沃克的例子里没用也可以呢!
      

  2.   

    这个方法是属于哪个类的,看看这个类是从java.awt.container继承来的吗?
    public void MessageShow()
    {
       ...
    }
      

  3.   

    to cming
    不是,是从java.awt.applet继承来的!
      

  4.   

    那我该怎么做,加一个container类吗?
      

  5.   

    可书上的例子中从applet继承的类里就直接用了add()
      

  6.   

    如果你是从Applet中继承的类,你自已没有修改过Layout的话是不应该有错的,这是因为Applet缺省是用FlowLayout的。
    不过你的类要是自已设了其它的Layout的话,那其它的Layout 可能就不支持 add(component)这种用法,比如GridBagLayout就必须用add(component, contraint)这种方法。
    如果还不是这个原因,你可能要把其它的代码也贴出来看一下了。
      

  7.   

    sorry,是我搞错了,我以为这个类的父类是从applet继承来的,原来不是,那我该怎么做,加一个container吗?能不能把container、Layout、GridBagLayout、GridBagConstraints之间的关系说得清楚点。
              先谢了!
      

  8.   

    怎么会是java.awt.applet呢?
    如果是继承java.applet.Applet而来的话就应该有add(Component comp)的方法。
    建议将整个类的原代码贴出。
      

  9.   

    不是加一个container,你想加一个Panel的话,必须有一个Frame或Window的存在,否则是显示不出来的。
    建议去看一下Frame或Window的方法。你说的那几个东西的关系是:
    container 与LayoutManager有关联(UML 中的Association)
    不存在一个抽象的Layout类或接口,一切的xxxLayout都是LayoutManager的一种实现
    如GridBagLayout 是 LayoutManager的一个实现类 (UML中的Implementation?)
    GridBagConstraints 是 GridBagLayout的一个服务类(UML中的Composite?)个人意见,不一定准确,也不一定有用。
      

  10.   

    我现在把整段程序放进了从applet继承而来的类里,倒是没出错了,可是却显示不出来,不只还有什么其它的问题没有?