请教关于Swing的问题!!

zccn 2003-10-19 07:54:00
以下是我的一段简单程序,但发现JPanel上的JButton没有出现。如果把paint()方法去掉则出现了,请问这是怎么回事,在java.awt中这样是可以的啊,请教各位!!import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MyTest2 extends JPanel
{
JButton jButton1 = new JButton();
public MyTest2() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}

}
private void jbInit() throws Exception {
jButton1.setText("jButton1");
this.add(jButton1, null);

}
public void paint(Graphics g){
}
public static void main(String[] args){
JFrame f=new JFrame();
MyTest2 my=new MyTest2();
f.setSize(200,300);
f.getContentPane().add(my);
f.show();
}
}





...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Muzhu 2003-10-20
  • 打赏
  • 举报
回复
public void paint(Graphics g){
super.paint(g);
}
noratong 2003-10-20
  • 打赏
  • 举报
回复
那是因为你的代码重写了JPanel类的paint方法,使它什么事都没做,所以也就在JPanel上画不出东西来。
你把paint方法里面加上super.paint();

Mars_wx 2003-10-19
  • 打赏
  • 举报
回复
因为你overiding了paint()方法 而你什么都没有做,当然看不见button了,而在awt中的每一个组件都有一个peer跟它对应,而swing中的没有,所以awt没有问题。
jiaojian77 2003-10-19
  • 打赏
  • 举报
回复
你先搞清楚paint是干什么的吧。

62,612

社区成员

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

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