据我所知,Jcomponent也有一个方法paintComponent.

解决方案 »

  1.   

    public class SwingUtilitiesextends Objectimplements SwingConstantsSwing 实用方法的集合。 
    大家有用到过吗??
      

  2.   

    只用过invokeAndWait和invokeLater的飘过
      

  3.   

    和楼上一样,SwingUtilities里的paintcomponent没用过,JComponent里的倒是偶尔用用
      

  4.   

    大概看了看。如果你想写个控件,点击后出现下拉列表,正常情况下这个下拉列表是要占据这个控件的空间,如果调用SwingUtilities.paintComponent的话就可以在包含它的容器里面显示这个下拉列表。正确答案是什么呢,楼下回答
      

  5.   

    paintComponent:
    public static void paintComponent(Graphics g,
                                      Component c,
                                      Container p,
                                      int x,
                                      int y,
                                      int w,
                                      int h)
    在指定矩形中的任意图形 g 上绘制一个组件 c,指定该矩形的左上角位置和大小。该组件的父级重新确定为一个私有容器(p 代表其父级),该容器防止 c.validate() 和 c.repaint() 调用沿树结构向上传播。该中间容器没有其他任何影响。 
    该组件应该从 JComponent 继承或者是另一种轻量级组件。轻量级组件是一个其 "lightweight" 属性(由该 Component isLightweight 方法返回)为 true 的组件。如果该 Component 不是轻量级的,则可能发生以下糟糕的事情:崩溃、异常、绘制问题…… 参数:
    g - 要在其上绘制的 Graphics 对象
    c - 要绘制的 Component
    p - 该中间 Container
    x - 指定要在其中绘制的区域左侧的 int 值,以像素为单位,通过图形环境的左边缘测量
    y - 指定要在其中绘制的区域顶部的 int 值,以像素为单位,通过图形环境的顶部边缘测量
    w - 指定要在其中绘制的区域宽度的 int 值,以像素为单位
    h - 指定要在其中绘制的区域高度的 int 值,以像素为单位