如何将参数传递给paint()以绘制椭圆?

时间:2018-04-04 17:28:02

标签: java methods graphics draw paint

我想从另一个方法传递两个整数值来绘制(Graphics g,int a,int b)

public void paint(Graphics g) { 

        g.drawLine(10, 330, 410, 330);
            g.drawLine(40, 30, 40, 360);

            for(int u=0;u<z;u++) {    
            g.drawOval(33, u+10, 20, 20);

        }

        }

但是当我尝试传递值时,它不会在帧中显示任何内容。

如何传递两个整数值以便根据这些数字绘制椭圆或我无法覆盖绘制方法?

一些提示会有所帮助。

1 个答案:

答案 0 :(得分:-1)

在正确的画布上绘制的可能性是你在draw void中有的Graphics变量,你不能只将你自己的变量添加到draw void中,但是你可以创建一个继承的新变量来自draw void的图形g变量,并从调用它获取整数。也许不理想,但它会起作用。

例如,您可以在类的顶部创建一个公共图形元素,并在draw void内部执行此操作:

publicGraphics = g;

然后在你的新虚空中,你可以这样做:

public void drawCustom(int x, int y){
    publicGraphics.drawRect(x, y, 50, 50);
}

当然,您可以将要传递的变量公开,而不是在调用void时传递它们,但这只适用于某些情况。

希望这有帮助

编辑:

这对我很有用:

    public Graphics publicGraphics;
 public void paint(Graphics g) {
     g.drawLine(10, 330, 410, 330); 
     g.drawLine(40, 30, 40, 360); 
     publicGraphics = g; 
     } 
 public void drawCustom(int p, int o, int z) { 
     for (int u = 0; u < z; u++) { 
         publicGraphics.drawOval(p, o, 50, 50); 
         } 
     }

然后你可以做drawCustom(50, 50, 70);

我不明白你为什么要做for循环或为什么你试图在paint void和custom draw void中做到这一点?