JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
setLayout(new GridBagLayout());
Приведенный выше код устанавливает менеджер макета для фрейма, а это не то, что вы хотите сделать.
А менеджером макета по умолчанию для панели является FlowLayout (поскольку вы этого не делаетеукажите менеджер раскладки).
Вы хотите установить диспетчер раскладки для каждой панели:
JPanel jp1 = new JPanel( pick a layout manager);
JPanel jp2 = new JPanel( pick a layout manager);
JPanel jp3 = new JPanel( pick a layout manager);
//setLayout(new GridBagLayout());
Таким образом, каждая панель, которую вы добавляете на вкладку, может иметь свой менеджер раскладки для достижения желаемогораскладка.Кроме того, вы можете вкладывать панели с различными менеджерами компоновки, чтобы обеспечить еще большую гибкость.
Компоновка каждой вкладки полностью независима от других вкладок.Единственное отношение состоит в том, что все вкладки имеют одинаковое пространство, поэтому предпочтительный размер панели вкладок будет предпочтительным размером самой большой вкладки.
Но я хотел бы использовать какой-то вид компоновки для установкитекст, расположенный сверху, затем в середине каждой вкладки используйте кнопки, а внизу вкладки есть Jtextarea для вывода потока.Любая помощь будет оценена.Вот мой код:
Так что, возможно, вы начнете с BorderLayout для главной панели, чтобы добавить на вкладку.Затем вы можете создать другие панели для отображения компонента в PAGE_START, CENTER, PAGE_END BorderLayout.Прочтите учебник по Swing в Layout Manager , где приведены примеры, с которых можно начать.
Редактировать:
Следуя моему предложению сверху, вы можете сделать что-то вроде:
JPanel top = new JPanel( new GridLayout(0, 3) );
top.add( new JLabel("Label1") );
top.add( new JLabel("Label2") );
top.add( new JLabel("Label3") );
JTextArea textArea = new JTextArea(5, 30);
JPanel bottom = new JPanel( new GridLayout(0, 2) );
bottom.add( new JButton("Button1") );
bottom.add( new JButton("Button2") );
JPanel tab1 = new JPanel( new BorderLayout() );
tab1.add(top, BorderLayout.PAGE_START);
tab1.add(new JScrollPane(textArea), BorderLayout.CENTER);
tab1.add(bottom, BorderLayout.PAGE_END);
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Tab1", tab1);
frame.add(tabbedPane);