Hey guys,

I'm drawing a grid using the nested for loop with draw line method.
Any tips on getting this in the center of my screen?

I am currently using the getWidth and getHeight methods of my center panel but it is still drawing in the top left corner.

It's to do with my drawLine method but I can't get it right...

for(int i = 1; i <= x; i++) {     // y

   for(int e = 1; e <= y; e++) { // x

   g.drawLine(i*h, 0,i*h, centerHeight); // y line
   g.drawLine(0 ,e*w, centerWidth, e*w); // x line

   int X=0;int Y=0;
	
   if (i == 1 & e == 1) {
       X = (i*w+i*w) - roverWidth;
       Y = ((5-e)*h+(5-e)*h) + roverHeight;
       lblRover.setBounds(0,0,X, Y);
   }
}

Recommended Answers

All 3 Replies

Make sure you take the width and the height of the panel, when the panel have been initialized. In the constructor of the panel, both the width and the height are 0.

Member Avatar

Don't use 0 (zero) for coordinates in your drawLine methods.

This got a little confusing but I had to use the height in the x line and the width in the y line, and the multiply by x/y instead.

g.drawLine(xPos+i*h, yPos ,xPos +i*h, yPos+w*e);
g.drawLine(xPos, e*w+ yPos, xPos+h*i, e*w + yPos);
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.