Как получить 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);
}
Другие вопросы по тегам