无论如何,我可以从选中的标签面板中获取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的模型”
答案 0 :(得分:3)
这似乎有效:
@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);
}