you did not set the painter,do it before you are going to draw something in canvas.

解决方案 »

  1.   

    Graphics2D g2 = bi.createGraphics();   
    g2.setPainter(Color.WIHTE);   
    g2.fillRect(0, 0, width, height);
    g2.setPainter(Color.RED);
    Rectangle2D rect = new Rectangle2D.Double(0, 0, width, height);
    Ellipse2D raduis = new Ellipse2D.Double();
    raduis.setFrameFromCenter(width/2, height/2, 0, 0);
    g2.draw(raduis);
    g2.draw(rect);g2.dispose();
      

  2.   


    注意到你的代码里面,有一句g2.fillRect(0, 0, width, height);来填充。
    但是,我上面的代码,用的是draw 。
    问题:为什么fill就可以使图片变颜色,而draw不行?
      

  3.   

    fill与draw的区别
    fill会填充几何形状, draw会绘制几何形状
    如果你是想绘制一个几个几何形状当然用draw
    如果你是想将一个几何形状填充成指定颜色用fill
    这个是在所有编程语言的图形API都通用的,纯科普下次先google再发问!