JComponent 中有一个paintComponent方法,有木有大神解释一下咋么用?感觉是默认调用的。

解决方案 »

  1.   

    因为一般是extends某component,所以super.paintComponent(g);也可以加上@override,然后自己按需求写。
      

  2.   

    1、作用:JComponent中的paintComponent方法用于自定义Swing组件时用于绘制该组件。
    2、调用机制:当Swing框架(例如窗口JFrame)需要重新绘图时,事件处理器会通知组件,引发执行所有组件的
                paintComponent方法,该方法自动调用,不需要手动调用。
    3、代码举例:
    class DrawComponent extends JComponent {
    public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;

    //draw a rectangle
    double leftX = 100;
    double topY = 100;
    double width = 200;
    double height = 150;

    Rectangle2D rect = new Rectangle2D.Double(leftX,topY,width,height);
    g2.draw(rect);
    }
    }
    上面的代码自定义了一个组件,该组件画了一个矩形;当该组件添加到窗口JFrame中,程序启动绘制窗口时,该组件的paintComponent方法会调用,届时窗口中将绘制一个矩形。