Sumtinlazy
Sumtinlazy

Reputation: 347

Improper formatting with fillRect

I want to make a background for a game I have created. I'm having some issues with fillRect. Does getHeight and getWidth have to be in a certain order or should getX/Y/Height/Width be used at all?

protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    //Graphical loop start
    Rectangle rect = new Rectangle(0,0,1440,900) ;
    g.fillRect(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
    //Graphical loop end
}

Upvotes: 1

Views: 57

Answers (1)

steven35
steven35

Reputation: 4017

Firstly, you are using the Graphics object instead of Graphics2D. You need to set the paint colour first then use the fill method.

g2d.setPaint(Color.BLUE);
g2d.fill(new Rectangle2D.Double(0, 0, screenWidth, screenHeight));

Rectangle2D constructor arguments are: x-coordinate of top-left, y-coordinate of top-left, width, height

It is good practice to use the Graphics2D.fill() method which will accept any object that implements the Shape interface. This makes it easier to change a shape to a different one should you decide to do so.

Upvotes: 3

Related Questions