Когда я изменяю размер JFrame, таблица (или точнее scrollPane) сжимается в маленький прямоугольник (с неизменным, но высота больше как 5-10 пикселей).
Также я заметил, что есть определенный порог высоты JFrame, и когда высота JFrame падает ниже этого значения, все GridBagLayouts ведут себя правильно (например, правильная ширина и высота всех панелей). Когда высота выше этого порога, обе правые панели приобретают дополнительную ширину, и rightTopPanel теряет свою высоту намного быстрее, чем rightBottomPanel при уменьшении высоты JFrame.
Порог, кажется, является точкой, когда rightTopPanel получает минимальную высоту (около 5-10 пикселей).
JPanel panel = new JPanel(new GridBagLayout());
JPanel rightTopPanel = new JPanel(new GridBagLayout());
panel.add(rightTopPanel, Helper.createGridBagConstraints(1, 0, 1, 1, 0.5, 0.5, GridBagConstraints.BOTH));
JPanel rightBottomPanel = new JPanel(new GridLayout(1, 1));
tableModel = new DefaultTableModel(0, 2);
JTable table = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table);
rightBottomPanel.add(scrollPane);
panel.add(rightBottomPanel, Helper.createGridBagConstraints(1, 1, 1, 1, 0.5, 0.5, GridBagConstraints.BOTH));
JPanel leftPanel = new JPanel();
panel.add(leftPanel, Helper.createGridBagConstraints(0, 0, 1, 2, 0.5, 1.0));
add(panel);
Helper.createGridBagConstraints - это просто вспомогательный метод для создания GridBagConstraints с многочисленными «необязательными» параметрами.
GridBagConstraints createGridBagConstraints(int gridx, int gridy)
GridBagConstraints createGridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight)
GridBagConstraints createGridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty)
GridBagConstraints createGridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int fill)
Редактировать: Кажется, что это проблема в JScrollPane. Если я не добавлю его, остальные панели изменят размер правильно.
Редактировать 2: Поскольку до сих пор никто не понимает, в чем моя проблема, вот скриншоты:
http://img155.imageshack.us/img155/8847/badgridbaglayout1.png
http://img17.imageshack.us/img17/8779/badgridbaglayout2.png
http://img28.imageshack.us/img28/9336/badgridbaglayout3.png