Я потерял: У меня есть JFrame, в JFrame является JTabbedPane и JTabbedPane 4 JPanels (вкладки). На каждой вкладке() JPanel является JScrollPane с JTable (всего: 4 для JTable). Каждый JTable Я заполняю данными из БД в момент запуска приложения - отлично работает.JTable событие вид
Теперь я хотел бы заполнить данные для каждого JTable в тот момент, когда я нажимаю на JTabbedPane (табл). Я пытался: "public class MyTest1Tab extends JPanel implements FocusListener"
с "this.addFocusListener(this);"
в конструкторе, и я внедрил focusGained(FocusEvent e) and focusLost(FocusEvent e)
методов. Но я чувствую, что это решение не является правильным.
С моей точки зрения мне нужно что-то вроде прослушивания для мыши на закладках на JTabbedPane или какое-то событие, которое срабатывает, когда JTable показано.
Кто-нибудь знает, как я могу слушать конкретные JTable показан?
вы ищете ChangeListener на с закладками – xyz
спасибо, делая некоторые примеры с этим слушателем. имеют небольшую проблему: он должен возвращать имя вкладки или индекс. имя вкладки не является хорошим (приложение является многоязычным). когда я буду зависеть от индекса табуляции, может ли он измениться? - например, когда я добавляю кнопку для вкладок, а затем закрываю вторую вкладку с четырех вкладок, а затем добавляю эту вкладку назад (из меню), вкладка будет последней. изменит индекс? – 1ac0
ok, после некоторого уточнения окончательного (?) Решения: порядок табуляции основан на заказе запуска приложения - порядке «jTabbedPane.addTab (« закладка теста 1 », null, panelTest1, null)» в app gui init. это не изменится, даже если вкладка закрыта, а затем снова открыта во время действия приложения.поэтому, если вкладка была в позиции 0, затем закрыта, а затем программно повторно открыта в позиции 4, индекс будет равен 0. – 1ac0