Как получить Jtable или получить модель JTable текущей вкладки?
В любом случае я могу получить Jtable из выбранной панели с вкладками.
Я создаю таблицы динамически для каждой вкладки, выбранной с помощью этого кода:
JScrollPane panel2 = new JScrollPane();
panel2.setName(tabidis);
chattable = new JTable();
chattable.setModel(new javax.swing.table.DefaultTableModel(new Object [][] {},new String [] {"Messages"}));
panel2.setViewportView(chattable);
chattable.setShowGrid(false);
jTabbedPane1.add(username4, panel2);
//I am using GUI environment in netbeans.
Я думаю, что иерархия выглядит следующим образом:
JTabbedPanel1 >> JscrollPAnel1 >> Jtable1
Используя следующий код:
((JTable) jTabbedPane1.getSelectedComponent () getComponentAt(1,1).getComponentAt(0,0).) GetName().
Я получаю сообщение об ошибке, что "javax.swing.table.JTableHeader не может быть приведен к javax.swing.JTable"
Это означает, что я получаю заголовок jTable в качестве компонента. Но мне нужно получить JTable в качестве результата компонента, чтобы получить модель из него.
Или проще: "Есть ли в любом случае, чтобы получить модель подарка JTable на выбранной вкладке"
1 ответ
Это похоже на работу:
@Test
public void test() {
// original components
JTable jTable = new JTable();
JScrollPane scrollPane = new JScrollPane(jTable);
// add them to tab
JTabbedPane jTabbedPane = new JTabbedPane();
jTabbedPane.addTab("tab1", scrollPane);
jTabbedPane.setSelectedComponent(scrollPane);
// get them out of selected tab
JScrollPane scrollRef = (JScrollPane) jTabbedPane.getSelectedComponent();
JTable tableRef = (JTable) scrollRef.getViewport().getComponents()[0];
assertTrue(tableRef == jTable);
}