如何获取当前选项卡的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).getComponent At(0,0)).getName();

我得到的错误是"javax.swing.table.JTableHeader不能转换为javax.swin.JTable"

这意味着我将获得jTableHeader作为组件。但我需要的是将JTable作为组件的结果,以便从中获得模型

或者更简单地说,"是否可以在所选选项卡中获得JTable的模型"

这似乎有效:

@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);
}

相关内容

  • 没有找到相关文章

最新更新