Я уверен, что этот вопрос может быть дубликат, но все же я отправляю сообщения, так как не могу найти решение/исправить ошибку в моем коде. Часть моего графического интерфейса Java использует GridBagLayout. Этот макет будет иметь 3 компонента, 2 переключателя будут сверху (размещены бок о бок), а остальное пространство должно иметь JPanel (начиная со следующей строки под переключателями до конца доступного пространства). Я рассматривал разные примеры, как на форуме, так и снаружи, но не могу решить проблему.Как настроить размер JPanel в GridBagLayout?
С помощью следующего кода, мой GUI раздел выглядит примерно так:
ImageDisplay = new JPanel(new GridBagLayout());
GridBagConstraints g = new GridBagConstraints();
g.insets = new Insets(5, 5, 5, 5); // insets for all components
rawImage = new JRadioButton("Raw", true);
peakPickedImage = new JRadioButton("Peak picked");
radioButtonGroup.add(rawImage);
radioButtonGroup.add(peakPickedImage);
g.fill = GridBagConstraints.HORIZONTAL;
g.gridx = 0;
g.gridy = 0;
g.gridwidth = 1;
g.gridheight = 1;
ImageDisplay.add(rawImage, g);
g.gridx = 1;
g.gridy = 0;
g.gridwidth = 1;
g.gridheight = 1;
g.weightx = 0;
g.weighty = 0;
ImageDisplay.add(peakPickedImage, g);
JPanel imagePanel = new JPanel();
g.gridx = 0;
// g.gridy = 0;
g.weightx = 1.0;
g.weighty = 0.75;
g.gridwidth = 3;
g.gridheight = 3;
// g.fill = GridBagConstraints.BOTH;
// g.fill = GridBagConstraints.SOUTH;
imagePanel.setBorder(BorderFactory.createEtchedBorder());
ImageDisplay.add(imagePanel, g);
и, раскомментирован
g.fill = GridBagConstraints.BOTH;
я получаю JPanel, который включает в себя как радиокнопки внутри него. Как решить эту проблему?
Он работал, как хотел :) – novicegeek