jTabbedPane открывает другую вкладку при загрузке - PullRequest
0 голосов
/ 02 марта 2010

Прежде всего, я использую NetBeans в качестве своей IDE, и я не знаю, вызывает ли это это. Когда я запускаю свою программу (даже если я собрал ее и запустил .jar), я думаю, что она выбирает вкладку, которая была ранее выбрана (до выхода). Так, если, например, я закрою приложение с выбранной третьей вкладкой, оно запустится с выбранной снова. Есть ли известное решение для этого? Свойство selectedIndex в jTabbedPane имеет значение 0. Разве это свойство не должно быть значением onLoad по умолчанию?

Спасибо заранее, Джимми

PS. Кстати, почему-то он не отправил мой вопрос в Opera (?)

Ответы [ 6 ]

4 голосов
/ 27 октября 2010
tabbedPaneName.setSelectedIndex(0);

просто поместите эту строку в место загрузки панели с вкладками если кнопка привода загрузит панель с вкладками, поместите строку туда но измените tabbedPaneName на ВАШЕ имя панели с вкладками.

0 голосов
/ 15 декабря 2012

Та же проблема. Пришлось вернуться к NetBeans 7.0.1 для обновления приложения JSR 296, и Java 7 запускает его не так, как в предыдущих версиях, поэтому последняя созданная вкладка всегда была той, на которой был фокус. Не удалось получить что-либо, что могло бы изменить это в конструкторе, но, в конце концов, оказалось, что просто завершение того же вызова (setSelectedIndex()) в вызове invokeLater() решает его.

    SwingUtilities.invokeLater(
      new Runnable() {
        public void run() {
          tabMain.setSelectedIndex(0);
        }
      }
    );
0 голосов
/ 12 апреля 2012

У меня была такая же проблема, и я нашел легкий обходной путь. В GUI-компоновщике netbean я установил панель вкладок не включенной. Позже в моей программе я проверил, не была ли она включена, и в этом случае она называется MyTabbedPane.setEnabled (true); и MyTabbedPane.setSelectedIndex (0);

0 голосов
/ 28 мая 2010

Та же проблема здесь с Netbeans 6.8 и JTabbedPane. Ни setSelectedIndex () , ни setSelectedComponent () не имеют значения. getSelectedIndex () возвращает ранее установленное значение, но панель выбрана неправильно.

Причина этого в том, что SingleFrameApplication сохраняет свое состояние и восстанавливает сохраненное состояние при следующем перезапуске. Это делается в коде, сгенерированном GUI Builder. Вы могли видеть, что startup () и configureWindow () методы SingleFrameApplication переопределены.

Обходные:

  1. Вы также можете переопределить метод shutdown () , тогда изменения в конфигурации не будут сохранены. Обратите внимание, что оригинал все еще будет восстановлен, поэтому убедитесь, что требуемая конфигурация сохранена.

  2. Изменение метода запуска () также помогает:

MyView myView = new MyView(this);
myView.getFrame().setVisible(true);
myView.getFrame().pack();
0 голосов
/ 04 марта 2010

Помимо использования JTabbedPane.setSelectedIndex(), также можно выбрать вкладку, вызвав JTabbedPane.setSelectedComponent(). Вы также искали код для setSelectedComponent()?

0 голосов
/ 02 марта 2010

Единственный способ установить индекс, отличный от нуля, это если код Java содержит:

tabbedPane.setSelectedIndex(...);

Поэтому найдите в исходном коде эту строку и исправьте ее.

...