Событие просмотра jtable - PullRequest
       3

Событие просмотра jtable

0 голосов
/ 08 февраля 2012

Я потерян: у меня есть JFrame , в JFrame есть JTabbedPane и в JTabbedPane - 4 JPanels (вкладки). На каждом JPanel (вкладка) есть JScrollPane с JTable (всего: 4 JTable's ). Каждый JTable Я заполняю данными из БД в момент запуска приложения - отлично работает.

Теперь я хотел бы заполнить данные для каждого JTable в тот момент, когда я нажимаю JTabbedPane (вкладка). Я пытался: "public class MyTest1Tab extends JPanel implements FocusListener" с "this.addFocusListener(this);" в конструкторе, и я реализовал focusGained(FocusEvent e) and focusLost(FocusEvent e) методы. Но я чувствую, что это решение не является правильным.

С моей точки зрения мне нужно что-то вроде прослушивания для щелчка по вкладкам на JTabbedPane или какого-либо события, которое вызывается, когда отображается JTable .

Кто-нибудь знает, как я могу слушать конкретные JTable отображается?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Now I would like populate data for each JTable at the moment when I click on JTabbedPane (tab).

не делайте так, потому что графический интерфейс Swing будет неработоспособным или зависает до тяжелой и длинной задачи завершенной, вы должны перенаправить этот такт на фоновую задачу, для Swing GUI естьЕсть два способа

или

  • Runnable#Threadобратите внимание, что весь вывод в графический интерфейс Swing должен быть заключен в invokeLater (), пример

, тогда этот путь должен быть user_non_friendly, давайте обновим содержимое JTable из JButton

0 голосов
/ 08 февраля 2012

Я думаю, вам следует зарегистрировать обработчик событий в JTabbedPane. Он выдаст вам выбранную вкладку, а затем на основе этого вы можете заполнить Jtable, специфичный для этого JTab.

например:

                    tabbedPane.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent arg0) {
            // TODO Auto-generated method stub
            if((((JTabbedPane)arg0.getSource()).getSelectedIndex())==0)
                            {
                                 //Load Jtable associated with first JTab
                            }

        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...