Я не могу заставить компоненты Java Swing работать вместе.
Что я хочу сделать, есть JPanel, заполняющий все пространство, доступное внутри JTabbedPane. На данный момент моя настройка такова:
public class Gui extends JFrame {
private final EventBus eventBus = EventBus.getInstance();
private final ToolkitUtil toolkitUtil;
private final Menu menu;
private final InfoBar infoBar;
private final JTabbedPane pane;
...
private void buildLayout() {
GridBagConstraints gbc = new GridBagConstraints();
setJMenuBar(menu);
add(pane, BorderLayout.CENTER);
add(infoBar, BorderLayout.SOUTH);
pane.addTab("Plugins", new PluginPanel());
}
}
public class PluginPanel extends JPanel {
private final JPanel modelPanel;
private final JPanel editorPanel;
public PluginPanel() {
setLayout(new GridBagLayout());
modelPanel = new JPanel(new GridBagLayout());
editorPanel = new JPanel(new GridBagLayout());
buildLayout();
}
private void buildLayout() {
GridBagConstraints gbc = new GridBagConstraints();
modelPanel.setBorder(BorderFactory.createTitledBorder("Models"));
editorPanel.setBorder(BorderFactory.createTitledBorder("Editors"));
gbc.gridx = 0;
gbc.fill = GridBagConstraints.BOTH;
modelPanel.add(new JLabel("test label"), gbc);
add(modelPanel, gbc);
gbc.gridx = 1;
add(editorPanel, gbc);
}
}
Это создает окна, которые являются моим желаемым размером (динамически пропорциональным размеру экрана, не включенному в вышеприведенный код). Панель вкладок, размещенная в центре, расширяется, чтобы заполнить все необходимое пространство, что именно то, что я хочу. Но панели, которые я добавляю внутри панели вкладок, имеют такой же большой размер, как и их содержимое. Если я добавлю ярлыки или что-то еще, они будут расти только до размеров компонентов. Я хочу, чтобы они всегда были расширены, чтобы заполнить вкладку.