日期:2014-05-20  浏览次数:20706 次

java Swing解惑


为什么我自己定义的JButton类没有正确的显示?
我认为应该重写JButton中的某些方法?
运行结果如下:

------解决方案--------------------
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是没有显示内容的。
------解决方案--------------------
MyButton继承了JButton,new MyButton()创建了没有显示名称的按钮,所以界面上显示是正确的。
你可以试试 this.add(my_bt.bt) ;
------解决方案--------------------
你写的东西,叫做“创建却不添加” 。
------------------
你的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();
试试 ...... 【我只是看看你代码,没试过,有问题再问吧 ... 】