У меня есть графический интерфейс, созданный с помощью Java Swing.У меня есть JPanel, который содержит все мои элементы управления:
JPanel rightSidePanel = new JPanel(new GridBagLayout());
rightSidePanel.add(forwardKinematics, new GridBagConstraints());
Это работает отлично.Тем не менее, я хотел бы добавить вкладку управления.К сожалению, добавление вкладок нарушает компоновку:
JTabbedPane tabs = new JTabbedPane();
tabs.addTab("Forward Kinematics", forwardKinematics);
JPanel rightSidePanel = new JPanel(new GridBagLayout());
rightSidePanel.add(tabs, new GridBagConstraints());
Теперь некоторые элементы управления в forwardKinematics
ужасно хрустят, вместо того, чтобы расширяться до их полного размера.Есть ли способ, которым я должен указать, что элементы управления могут расширяться и занимать столько места, сколько они хотят?
Я использую макеты gridbag.
Вот код, который создаетэлементы управления пользовательского интерфейса, которые становятся раздавленными (с удаленными нерелевантными выдержками):
panel.add(label, new GridBagConstraints());
GridBagConstraints gbc = new GridBagConstraints();
final DefaultTableModel model = new DefaultTableModel();
model.addColumn("foo");
model.addColumn("bar");
final JTable table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
gbc = new GridBagConstraints();
gbc.gridy = 2;
gbc.ipady = 10;
gbc.ipadx = 10;
panel.add(scrollPane, gbc);
final JComboBox comboBox = new JComboBox();
gbc = new GridBagConstraints();
gbc.gridy = 1;
panel.add(comboBox, gbc);
JButton makeNewButton = new JButton("Make new from current state");
gbc = new GridBagConstraints();
gbc.gridy = 1;
panel.add(makeNewButton, gbc);
JButton deleteButton = new JButton("Delete Current Keyframe");
gbc = new GridBagConstraints();
gbc.gridy = 2;
panel.add(deleteButton, gbc);
JButton playAll = new JButton("Play All");
gbc = new GridBagConstraints();
gbc.gridy = 2;
panel.add(playAll, gbc);
Что я здесь не так делаю?
Обновление : я пытался использовать tabs.setPreferredSize()
.Это делает область вокруг вкладки больше (как будто я добавляю отступы), но содержимое внутри них остается сжатым, как всегда.