web-dev-qa-db-fra.com

Comment créer un objet Rectangle en Java en utilisant la méthode g.fillRect

J'ai besoin de créer un objet rectangle, puis de le peindre à l'applet à l'aide de Paint (). j'ai essayé

Rectangle r = new Rectangle(arg,arg1,arg2,arg3);

Puis essayé de peindre à l'applet en utilisant 

g.draw(r);

Ça n'a pas marché. Y at-il un moyen de faire cela en Java? J'ai parcouru Google à un pouce de sa vie pour obtenir une réponse, mais je n'ai pas été en mesure de trouver une réponse. S'il vous plaît aider!

9
imulsion

Essaye ça:

public void Paint (Graphics g) {    
    Rectangle r = new Rectangle(xPos,yPos,width,height);
    g.fillRect(r.getX(), r.getY(), r.getWidth(), r.getHeight());  
}

[modifier] 

// With explicit casting
public void Paint (Graphics g) {    
        Rectangle r = new Rectangle(xPos, yPos, width, height);
        g.fillRect(
           (int)r.getX(),
           (int)r.getY(),
           (int)r.getWidth(),
           (int)r.getHeight()
        );  
    }
15
Zac

Vous pouvez essayer comme ça:

import Java.applet.Applet;
import Java.awt.*;

public class Rect1 extends Applet {

  public void Paint (Graphics g) {
    g.drawRect (x, y, width, height);    //can use either of the two//
    g.fillRect (x, y, width, height);
    g.setColor(color);
  }

}

où x est la coordonnée x y est y cordinate color = la couleur que vous voulez utiliser, par exemple Color.blue

si vous voulez utiliser un objet rectangle, vous pouvez le faire comme ceci:

import Java.applet.Applet;
import Java.awt.*;

public class Rect1 extends Applet {

  public void Paint (Graphics g) {    
    Rectangle r = new Rectangle(arg,arg1,arg2,arg3);
    g.fillRect(r.getX(), r.getY(), r.getWidth(), r.getHeight());
    g.setColor(color);
  }
}       
5
heretolearn

Remarque: drawRect et fillRect sont différents.

Dessine le contour du rectangle spécifié:

public void drawRect(int x,
        int y,
        int width,
        int height)

Remplit le rectangle spécifié. Le rectangle est rempli en utilisant la couleur actuelle du contexte graphique:

public abstract void fillRect(int x,
        int y,
        int width,
        int height)
0
ZhaoGang