How can I get the size of a component when using a layout for my frame? I can just note that I'm using a BorderLayout for a JFrame and I want the size of a JPanel.
Asked
Active
Viewed 420 times
0
-
2Why do you need the size? Unless we know the requirement we can't make a suggestion. – camickr Jul 03 '13 at 16:11
-
The [preferred size](http://stackoverflow.com/q/7229226/230513) is determined by the content and layout of the enclosing container. – trashgod Jul 03 '13 at 19:59
-
@camickr I want to override the paint function to draw a grid on it. And I don't know how many lines to draw, and how long the lines should be. I don't want my class to be limited to manually designed frames. – Shayan Toqraee Jul 04 '13 at 07:46
1 Answers
0
You can try the JPanel
methods, getWidth()
and getHeight()
:
int getWidth();
int getHeight();
They will return the height and width of the JPanel
.
You can also get the bounds of the JPanel
using the method getBounds()
:
Rectangle getBounds();
It will return a Rectangle
of the bounds. You can use it to get the location and size of the JPanel
.

Shayan Toqraee
- 735
- 8
- 18

Iftikhar Ali Ansari
- 1,650
- 1
- 17
- 27
-
When the panel is placed in a frame using a layout, all the mentioned functions will return 0. – Shayan Toqraee Jul 04 '13 at 07:50
-
you are getting 0 because you calling the methods before your main frame is render. the above method is work only when you call after the setVisible(); or you can try pack() method. – Iftikhar Ali Ansari Jul 04 '13 at 18:29