Вопрос

Когда я использую setSelectedComponent или setSelectedIndex на JTabbedPane объект, панель всегда появляется в моем пользовательском интерфейсе.Однако иногда вкладка, связанная с панелью, остается скрытой.Другими словами, вкладка не прокручивается до видимой части панели с вкладками.

Как я могу это исправить?Я попробовал дрянной select one index, затем выберите нужный индекс, а также несколько других более элегантных вещей, но arrrrgh!!

Помоги мне, если сможешь.

Спасибо, Тодд

Это было полезно?

Решение

Я думаю, что ваш звонок сделан не по EDT.Оберните его SwingUtilities.invokeLater

Другие советы

Вот шаблон, который вы можете использовать, если у вас есть метод, который изменяет компоненты swing или их модели и поэтому должен вызываться в EDT, но может быть вызван из фонового потока.Это обеспечивает функция всегда работает на EDT:

void func(final Type1 arg1, final Type2 arg2) {

    if (!SwingUtilities.isEventDispatchThread()) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                func(arg1, arg2);
            }
        });
        return;
    }
    // method code goes here
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top