Я пытаюсь создать макет с JTabbedPane в верхней части кадра, а затем jLogArea ниже области с вкладками.Как остановить JTextArea от размещения поверх JTabbedPane?
Я использую этот код:
setLayout(new BorderLayout());
tabbedPane.setSize(WIDTH, HEIGHT);
add(tabbedPane, BorderLayout.PAGE_START);
tabbedPane.add("Tab 0", null);
scrollableTextArea = new JScrollPane(jTextArea);
jTextArea.setEditable(false);
jTextArea.setLineWrap(true);
scrollableTextArea.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollableTextArea.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
add(scrollableTextArea, BorderLayout.PAGE_END);
Однако, результатом этого является то, что текстовая область помещается позади вкладками панели:
Кто-нибудь знает, что я делать неправильно и как я могу это исправить? Благодарю.
EDIT: Чтобы быть ясным, я ищу, чтобы область текста была ниже JTabbedPane, а не на вкладке iself.
Использование BorderLayout.NORTH
и BorderLayout.SOUTH
также не помогает. Я добавил метку в содержание этой вкладки, чтобы посмотреть, если это будет иметь значение, но область текста все еще идет позади, вот как это выглядит:
Далее код (класс расширяет JFrame
):
public MainGUI() {
init();
pack();
super.setTitle("test");
}
public void init() {
setLayout(new BorderLayout());
setPreferredSize(new Dimension(WIDTH, HEIGHT + TEXT_AREA_HEIGHT));
setMaximumSize(new Dimension(WIDTH, HEIGHT + TEXT_AREA_HEIGHT));
setMinimumSize(new Dimension(WIDTH, HEIGHT + TEXT_AREA_HEIGHT));
tabbedPane = new JTabbedPane();
textArea = new JTextArea(WIDTH, TEXT_AREA_HEIGHT);
scrollableTextArea = new JScrollPane(textArea);
JLabel testLabel = new JLabel("Test!");
tabbedPane.add("Tab 0", testLabel);
tabbedPane.setBorder(null);
tabbedPane.setSize(WIDTH, HEIGHT);
add(tabbedPane, BorderLayout.NORTH);
textArea.setEditable(false);
textArea.setLineWrap(true);
scrollableTextArea.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollableTextArea.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
add(scrollableTextArea, BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}
Вы хотите 'JTextArea' за' JTabbedPane'? –
Я ищу его под JTabbedPane, а не внутри содержимого вкладки. Таким образом, это будет выглядеть так: Панель меню -> Список вкладок -> Содержание вкладки -> Текстовая область, если этот список был вертикальным порядком компонентов. – Dan
Позвольте мне уточнить .. Вы хотите, чтобы 'JTextArea' добавлялся в' JFrame' на 'Южном' этого ... И над тем, что в центре' JFrame' нужно добавить JTabbedPane'. Правильно? –