Как мне создать 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) функция: которая удалит компонент из его старого родителя и добавит его к новому родителю.

Тем не мение:

  1. Вам нужно добавить JScrollPane к JTabbedPane пример.
  2. Компонент, который вы хотите прокрутить, устанавливает его как представление JScrollPane с использованием setViewportView(component) функция. для вашего контекста этоupgradeScreen

Не мы JScrollPane#add вместо того, чтобы использовать JScrollPane#setViewportView

Проверьте, как использовать ScrollPane более подробно.

Советую- не пользуюсь null макеты, они ограничивают способность вашего приложения работать на нескольких платформах. Вместо этого найдите время, чтобы узнать, как работают менеджеры по расположению

Другие вопросы по тегам