【问题标题】:How to get the Jtable or get jTable model of the current tab?如何获取当前选项卡的Jtable或jTable模型?
【发布时间】:2013-07-04 16:59:38
【问题描述】:

无论如何我可以从选定的选项卡式面板中获取 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 Header 作为组件。但我需要将 JTable 作为组件结果,以便从中获取模型。

或者更简单地说“是否有办法让 JTable 的模型出现在选定的选项卡中”

【问题讨论】:

    标签: java swing jtable jtabbedpane defaultlistmodel


    【解决方案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);
    }
    

    【讨论】:

    • 非常感谢基思。你终于解决了我的问题。我在谷歌上搜索了这个问题 4 天,终于你解决了:)
    猜你喜欢
    • 2016-11-12
    • 2012-09-25
    • 2019-08-24
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2010-09-22
    • 1970-01-01
    相关资源
    最近更新 更多