Как я могу получить размер компонента при использовании макета для моего фрейма? Я могу только отметить, что я использую BorderLayout для JFrame, и я хочу размер JPanel.Как получить размер компонента при использовании макета для моего фрейма?
ответ
Вы можете попробовать JPanel
методы, getWidth()
и getHeight()
:
int getWidth();
int getHeight();
Они возвращают высоту и ширину JPanel
.
Вы также можете получить границы в JPanel
с использованием метода getBounds()
:
Rectangle getBounds();
Это возвращает Rectangle
из границ. Вы можете использовать его для определения местоположения и размера JPanel
.
Когда панель помещается в рамку с использованием макета, все упомянутые функции вернут 0. –
вы получаете 0, потому что вы вызываете методы перед тем, как ваш основной кадр визуализируется. вышеупомянутый метод работает только при вызове после setVisible(); или вы можете попробовать метод pack(). – Iftikhar
Зачем вам нужен размер? Если мы не знаем этого требования, мы не можем сделать предложение. – camickr
[Предпочтительный размер] (http://stackoverflow.com/q/7229226/230513) определяется содержимым и расположением вмещающего контейнера. – trashgod
@camickr Я хочу переопределить функцию рисования, чтобы нарисовать на ней сетку. И я не знаю, сколько линий нужно рисовать, и как долго должны быть линии. Я не хочу, чтобы мой класс ограничивался рамками, созданными вручную. –