jtable不显示

piah890a  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(607)

首先,我创建了jsplitpane:

JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT ,new JScrollPane(textArea), new JScrollPane(table));
add(splitPane);//added to frame

然后我用默认模型创建了表:

DefaultTableModel model = new DefaultTableModel(columns, 0);
JTable table = new JTable(model);

其中,我将这些值设置为列数组: A B C D E F P1 P2 R1 R2 R3 S1 S2 .
问题是,当我稍后在某个操作之后(在操作侦听器中)尝试使用以下代码添加数据时:

model.addRow(parts);

部件所在位置(作为阵列):

3.0 2.0 5.0 4.0 6.0 1.0 4.0 1.0 -4.0 -30.0 5.0 -1.0 -6.0  
6.0 1.0 3.0 2.0 5.0 4.0 0.5 -5.5 0.75 -38.5 7.0 1.5 -5.5

文本区域显示正确,但表格显示不正确。
我不知道我做错了什么,我一直遵循这个教程https://docs.oracle.com/javase/tutorial/uiswing/components/table.html 但这没用。
p、 如果我设置 table = new JTable(10,10) 在splitpane初始化之后,它会在splitpane中正常显示。

bsxbgnwa

bsxbgnwa1#

将表变量添加到拆分窗格时,该表变量为空。所以没有任何组件被添加到拆分窗格。
以后不能创建jtable的示例。当然,变量“table”现在可能包含对jtable的引用,但实际上您还没有将该表添加到拆分窗格中。
只有在创建jtable之后,才能将表添加到拆分窗格。
所以代码必须是这样的:

table = new JTable(column, 0);
JSplitPane splitPane = new JSplitPane(... , new JScrollPane(textArea), new JScrollPane(table));

之后在代码中可以使用:

DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow( ... );

相关问题