Как мне создать JScrollPane в JTabbedPane?
Я пытаюсь создать JScrollPane на одной из вкладок моего JTabbedPane. Я попробовал то, что я хотя бы работал, что было это:
pane.add("Main", mainGame);// These are my other tabs
pane.add("Upgrades", upgradeScreen); //the JTabbedPane
pane.add("Credits", creditsTab);
upgradeScreen.setLayout(null); //The null layout
lblMoney2.setBounds(10, 11, 277, 22);
upgradeScreen.add(lblMoney2); // A simple JLabel
scrollPane.add(upgradeScreen); //my JScrollPane
Где панель - это моя JTabbedPane, а scrollPane - моя JScrollPane. Это просто избавилось от моего обновления вкладки экрана. Я как бы ожидал этого, но я не знал, что еще делать. Если вам понадобится больше кода, чтобы понять это, скажите мне, и я его вставлю, в противном случае, спасибо за помощь!
2 ответа
Это просто избавило меня от моего обновления.
да, потому что ни у одного компонента не может быть двух родителей одновременно. Вы добавили upgradeScreen
в JTabbedPane
сначала, а затем снова добавил его в JScrollPane
, Функция добавления (компонента) компонента в конечном итоге вызовет addImpl(component)
функция: которая удалит компонент из его старого родителя и добавит его к новому родителю.
Тем не мение:
- Вам нужно добавить
JScrollPane
кJTabbedPane
пример. - Компонент, который вы хотите прокрутить, устанавливает его как представление
JScrollPane
с использованиемsetViewportView(component)
функция. для вашего контекста этоupgradeScreen
Не мы JScrollPane#add
вместо того, чтобы использовать JScrollPane#setViewportView
Проверьте, как использовать ScrollPane более подробно.
Советую- не пользуюсь null
макеты, они ограничивают способность вашего приложения работать на нескольких платформах. Вместо этого найдите время, чтобы узнать, как работают менеджеры по расположению