JComponent: Как он может сопротивляться уменьшению?

У меня есть собственный JComponent, который рисует некоторые вещи при вызове paint. Однако в макете Border minimumSize не соблюдается. я включил это

@Override
public Dimension getMinimumSize() {
    System.out.println("asking for min size");
    return MINIMUM_SIZE;
}

и он никогда не вызывается. Я также попытался установить минимальный размер для контейнера, который его содержит, и для JFrame, который его содержит. Как я могу установить некоторые ограничения здесь?


person Dan Rosenstark    schedule 03.02.2010    source источник
comment
@Thilo, я добавил другую букву «л», шутки не смешные с орфографическими ошибками.   -  person Dan Rosenstark    schedule 03.02.2010
comment
Как вы определяете размер рамы в первую очередь? Компонент находится в центре макета рамки? У нас действительно не хватает, чтобы продолжать здесь. У меня никогда не было проблем с pack(), но он будет использовать предпочтительный размер, а не минимальный размер. И на самом деле ничто не мешает пользователю перетащить кадр меньше, если вы это имеете в виду.   -  person PSpeed    schedule 03.02.2010
comment
@PSpeed, вот что я имею в виду. Но сейчас я поменял раскладки и стратегии (прошло несколько часов :)... так что у меня все хорошо. Спасибо за вашу помощь.   -  person Dan Rosenstark    schedule 03.02.2010


Ответы (1)


Я не думаю, что BorderLayout соблюдает минимальные размеры; он просто измеряет вещи, чтобы они соответствовали контейнеру. Вам следует попробовать другой макет (возможно, BoxLayout).

person Matt McHenry    schedule 03.02.2010
comment
Да, я на самом деле делаю это. На самом деле это так в Java: включите целую кучу необязательных вещей, которые имеют нормальные имена, которые не означают нормальные вещи. В любом случае, спасибо и +1 - person Dan Rosenstark; 03.02.2010
comment
GridBagLayout в помощь :) - person willcodejavaforfood; 03.02.2010