2015-06-08 1 views
1

У меня есть панель, которую нужно знать его размер внутри конструктора:Java получить компонент измерение в конструкторе

class Panneau extends JPanel { 
    public Panneau() { 
     super(); 
     new Map(getSize()); 
    } 
} 

К сожалению, не похоже, размер были инициализированы и getSize() возвращает Dimension с 0 для высоты и ширины. Как получить будущее Dimension?

+0

Um является 'Panneau', который должен наследовать от' Panel'? Сейчас это не так. Поэтому 'super();' будет просто конструктором класса Object. – ryanyuyu

+0

Правильно, я забыл 'extends JPanel' в этом вопросе. – Codoscope

ответ

1

Если вы хотите работать с размером компонента, вам нужно сделать это, когда компонент действительно используется в хорошо сформированном пользовательском интерфейсе.

Один из способов сделать это - добавить ComponentListener в код и реализовать метод componentResized, который будет вызываться всякий раз, когда изменяется размер компонента. Там вы можете работать с самым последним точным значением для размера компонента, используя getSize().