Получить высоту и ширину JComponent в конструкторе - PullRequest
4 голосов
/ 09 ноября 2011

Я хочу получить высоту и ширину моего JFrame, чтобы графика была в том же относительном положении, даже если размер окна изменен. Для этого я пытаюсь получить высоту и ширину в своем конструкторе, но он всегда возвращает 0. Каков наилучший способ сделать это?

public class FireworkComponent extends JComponent {
   public FireworkComponent() {
   //some variables ....

  this.getHeight();
  this.getWidth();
    }

}

Ответы [ 3 ]

4 голосов
/ 09 ноября 2011

Размеры вернут 0, если компонент не реализован (т.е. видимый).Если вы переопределите метод компонента paintComponent, вы сможете получить размеры контейнера и установить графический объект в определенном месте, нарисовав объект компонента Graphics.

2 голосов
/ 10 ноября 2011

Не пытайтесь получить его в конструкторе, используйте this.HEIGHT и this.WIDTH и установите его с помощью

метод public void setLocation (int x, int y). Удостоверьтесь, что вы делаете это в методе paintcomponent, который вы должны переопределять, чтобы он вызывал его каждый раз при изменении размера.

2 голосов
/ 09 ноября 2011

Попробуйте позвонить pack(); перед звонком getHeight(); или getWidth();

...