Вывод вкладки на передний план в JTabbedPane - PullRequest
1 голос
/ 06 августа 2009

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 06 августа 2009

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

1 голос
/ 06 августа 2009

Вот шаблон, который вы можете использовать, если у вас есть метод, который изменяет компоненты свинга или их модели и поэтому должен вызываться в EDT, но может вызываться из фонового потока. Это гарантирует, что func всегда работает на 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
}
...