在你按钮添加完之后使用updateUI()方法就可以了。因为你那些按钮是画在jpanel上的,所以要使用那个组件的updateUI方法,即 jpanel.add(new JButton("按钮"+(buttonCount++)));之后添加一句 jpanel.updateUI();这样就能看到效果了。
JAVA 图形界面编程问题
在你按钮添加完之后使用updateUI()方法就可以了。
因为你那些按钮是画在jpanel上的,所以要使用那个组件的updateUI方法,即
jpanel.add(new JButton("按钮"+(buttonCount++)));
之后添加一句
jpanel.updateUI();
这样就能看到效果了。2009-11-22
添加完毕之后调用repaint()看看!2009-11-22
给你说下调用次序你就知道了。
按缩进。
主函数
构造TestAddButton实例
init();
jpanel=new JPanel();
this.add(jpanel);
this.setSize(400,400);
注册鼠标事件监听
显示TestAddButton实例
然后在鼠标事件触发:
addButton
添加按钮的代码
结构明白了,下面就是哪出的问题。
你感觉明明添加了,却不显示。有些不是看API文档或书能知道的,就得自己做一做。
AWT中添加组件能直接看的见的。但在swing中未必。
swing和AWT很多东西有细节差距的。swing下的GUI,凡是更改了UI的,一定要repaint,这是个原则问题。
你的问题就在于以为添加了组件就一定显示。在swing中是不成立的。
而且,虽然awt添加组件能直接显示,但绘制一样不会自动更新的。
所以,凡是更改了UI的,一定要repaint。2009-11-22