У меня есть фрейм с BorderLayout. В центре BorderLayout есть JPanel с GridLayout. Иногда мне приходится менять этот внутренний GridLayout JPanel с 9x9 на 4x4 (или 16x16). Но, к сожалению, размер ячеек остается прежним. После изменения размера кадра вручную макет адаптирует размеры, и он снова выглядит правильно. Вот как это выглядит после перехода на 4x4 и после изменения размера:
Как заставить внутреннюю панель автоматически обновляться? Я пробовал repaint() на внутренней панели (той, что с GridLayout) и рамке. На данный момент я использую этот код, который имеет некоторые неприятные побочные эффекты:
Dimension size = frame.getSize();
frame.setSize(new Dimension(size.height, size.width+1));
frame.setSize(size);
Есть ли другие способы добиться этого? Заранее спасибо!
CardLayout
для переключения между ними. - person Andrew Thompson   schedule 19.07.2014