У меня есть две панели, которые я хочу показать пользователю. Я решил добавить их в JTabbedPane. Я также хочу позволить пользователю одновременно видеть их обоих. Поэтому я добавил две панели в свой JTabbedPane, а затем создал JSplitPanel как таковой:
tabs.addTab("Align Image Points", imageControlPanel);
tabs.addTab("Align Map Points", mapControlPanel);
JSplitPane splitPane = new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT, true, imageControlPanel,
mapControlPanel);
tabs.addTab("Side by side view", splitPane);
Полученный JTabbedPane имеет только одну вкладку! Когда я удаляю JSplitPane все работает нормально. Две вкладки. Затем я попытался упростить задачу, чтобы опубликовать здесь, и я придумал это:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame("Test");
JButton b1 = new JButton("First");
JButton b2 = new JButton("Second");
JSplitPane s = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,b1,b2);
JTabbedPane tabs = new JTabbedPane();
tabs.addTab("First", b1);
tabs.addTab("Second", b2);
tabs.addTab("Both", s);
f.getContentPane().add(tabs);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
Это дало мне еще одну проблему! Он отображает 3 вкладки, но на разделенной панели третьей вкладки нет кнопок!
Итак, мой вопрос: что не так с JSplitPanel? Вы не можете отображать объекты, которые уже отображаются на другой вкладке? Это не имеет никакого смысла. Пожалуйста, помогите мне.
(Примечание: я не хочу дублировать компоненты, которые я собираюсь отобразить, поскольку хочу, чтобы они были одинаковыми ссылками)