我写了一个类,继承自JComponent类,然后重写了四个方法(下面),在main方法里做一个JFrame,把自定义控件类的对象加到窗口的contentPane里面,可是下面的四个方法一个都不执行,为什么?
public void paint(Graphics g)
{
System.out.println("------paint--------------");
}
public void update(Graphics g)
{
System.out.println("------update--------------");
}
public void repaint()
{
System.out.println("-------repaint----------");
}
public  void paintComponent(Graphics g)
{
System.out.println("----------------paintComponent----");
super.paintComponent(g);

}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【liyankai】截止到2008-07-10 17:09:55的历史汇总数据(不包括此帖):
    发帖的总数量:6                        发帖的总分数:200                      每贴平均分数:33                       
    回帖的总数量:4                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:5                        结贴的总分数:150                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:50                       
    结贴的百分比:83.33 %               结分的百分比:75.00 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    你重写方法后也要在MAIN方法中调用啊,J2SE程序所有东西都要通过MAIN方法执行啊
      

  3.   

    楼主 Frame setVisible(true); 了吗?
      

  4.   

    问题已经解决,
    ...
    JPanel pnl=(Jpanel)frame.getContentPane();
    pnl.setLayout(null);
    pnl.add(自定义控件的对象);
    ...
    这段代码有问题,pnl布局改成null,不会自动设置自定义控件对象的大小,而且
    代码里也没有手工指定大小,所以这个控件的的height和width都是0,自然不会
    调用那几个方法了,代码里面指定控件的size以后,方法顺利执行多谢各位!