java Swing解惑

长衫罩子笼 2013-12-18 08:32:43


为什么我自己定义的JButton类没有正确的显示?
我认为应该重写JButton中的某些方法?
运行结果如下:
...全文
170 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
长衫罩子笼 2013-12-19
  • 打赏
  • 举报
回复
谢谢 平常心_袁慎建 ,Yimenchuixue ,weidu23 三位的回答,我刚开始学习Swing,昨天在项目中想写一个面板,就出现这个问题。非常谢谢大家的解答!!!
weidu23 2013-12-19
  • 打赏
  • 举报
回复
你写的东西,叫做“创建却不添加” 。 ------------------ 你的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(); 试试 ...... 【我只是看看你代码,没试过,有问题再问吧 ... 】
Yimenchuixue 2013-12-18
  • 打赏
  • 举报
回复
MyButton继承了JButton,new MyButton()创建了没有显示名称的按钮,所以界面上显示是正确的。 你可以试试 this.add(my_bt.bt) ;
袁慎建 2013-12-18
  • 打赏
  • 举报
回复
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是没有显示内容的。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧