lz初学swing吧,看到楼主自己去实现JButton,就感觉楼主有创造的想法,针对lz的代码:
1.lz自己定义的JButton其实已经加到了JFrame上了,只是没有显示按钮内容。
2.lz要显示MyButton的内容,需要在MyButton类中添加一个构造方法:
public MyButton(String text) {
super(text);
}
因为在MyButton类中你包含了一个JButton,这个JButton和你在JFrame上添加的MyButton没有直接关系,所以说你在Test方法中创建的MyButton是没有显示内容的。

解决方案 »

  1.   

    MyButton继承了JButton,new MyButton()创建了没有显示名称的按钮,所以界面上显示是正确的。
    你可以试试 this.add(my_bt.bt) ;
      

  2.   

    你写的东西,叫做“创建却不添加” 。
    ------------------
    你的MyButton继承了JButton,意味着MyButton本身就是个jbutton,
    你的构造函数super()这一句,就是把MyButton设置为默认的JButton() 。
    此时,你的构造函数里面又有一个bt = JButton("Save");
    你或许在线,我这个怎么不显示啊 ?
    是的,你的bt实际上存在了,但是,你的JFrame的add()添加的是MyButton,而不是bt = JButton("Save");那个bt 。
    -------------------
    你这里实际上创建了3个Button,但是有2个添加进了JFrame中 ... 不信的话,你可以试着在 Test中加上这样一句:
    JButton bu = my_bt.bt ;
    this.add();
    试试 ...... 【我只是看看你代码,没试过,有问题再问吧 ... 】
      

  3.   

    谢谢 平常心_袁慎建 ,Yimenchuixue ,weidu23 三位的回答,我刚开始学习Swing,昨天在项目中想写一个面板,就出现这个问题。非常谢谢大家的解答!!!