呵呵, 在 TestButton 中定义的 Frame f 和 Button b 和在构造
函数中的不是一个.

解决方案 »

  1.   

    Frame f 和 Button b 把F 和 B 的初始化拿到构造函数外面来
      

  2.   

    要改的部分如下(已经改过了):
    public class TestButton{
    private Frame f;
    private Button b;
    public TestButton(){
    f=new Frame("Test");
    b=new Button("Press me");
    }
      

  3.   

    因为你原来的写法,是在构造函数中定义并创建的f,b。
    不会连变量定义与赋值都忘了吧?你定义的private Frame f and Button b,并未在构造函数里用到,也就是没有为它们创建对象。
    在构造函数中,你又定义了一个新的f,并且初始化了。
    而你创建的f,b只适用于TestButton()本身,是局部的,并且覆盖全局的f与b。