#java #swing #jframe #jcomponent
#java #качать #jframe #jcomponent
Вопрос:
Я хочу получить высоту и ширину моего JFrame, чтобы графика находилась в том же относительном положении, даже если размер окна изменен. Для этого я пытаюсь получить высоту и ширину в моем конструкторе, но он всегда возвращает 0. Каков наилучший способ сделать это?
public class FireworkComponent extends JComponent {
public FireworkComponent() {
//some variables ....
this.getHeight();
this.getWidth();
}
}
Ответ №1:
Размеры вернутся, 0
если компонент не реализован (т. е. виден). Если вы переопределите paintComponent
метод компонента, вы сможете получить размеры контейнера и установить графику в определенном месте, рисуя на Graphics
объекте компонента.
Ответ №2:
Попробуйте вызвать pack();
перед вызовом getHeight();
или getWidth();
Ответ №3:
Не пытайтесь получить это в конструкторе, используйте это.ВЫСОТА и это.WIDTH и устанавливаем его с помощью
метод public void setLocation(int x, int y). Убедитесь, что вы делаете это в методе paintcomponent, который вы должны переопределять, чтобы он вызывал его каждый раз, когда он изменяет размер.