Java 如何修复jtable渲染始终仅(且至少)4行?

Java 如何修复jtable渲染始终仅(且至少)4行?,java,jtable,rendering,Java,Jtable,Rendering,我的程序应该将表的键/值对转换为转义JSON,以便shell执行。此JTable位于JSplitPane内,但仅显示4行,当少于4行时,其他1-3行应显示的位置将显示白色背景。(有4个以上的寄存器) e、 g: 关于数据: 没有数据: 正如您所看到的,底部的JSON包含了所有的表数据,但是JTable没有正确地呈现它。表格填写代码: DefaultTableModel dtm = ((DefaultTableModel) tblParameters.getModel()); dtm.setR

我的程序应该将表的键/值对转换为转义JSON,以便shell执行。此JTable位于JSplitPane内,但仅显示4行,当少于4行时,其他1-3行应显示的位置将显示白色背景。(有4个以上的寄存器)
e、 g:

关于数据:

没有数据:

正如您所看到的,底部的JSON包含了所有的表数据,但是JTable没有正确地呈现它。表格填写代码:

DefaultTableModel dtm = ((DefaultTableModel) tblParameters.getModel());
dtm.setRowCount(0);

currentFileParameters = (ReplacerLinkedHashMap<String, String>) FileParametersDAO.getInstance().getParametersForFile(file); // get parameters from database for specific file

for (Map.Entry<String, String> entry : currentFileParameters.entrySet()) {
    dtm.addRow(new Object[]{entry.getKey(), entry.getValue()}); // add row
}

dtm.addRow(new Object[]{"", ""}); // add blank row for adding more parameters
tblParameters.revalidate(); // failure trying to resolve the problem [part 1]
tblParameters.repaint(); // failure trying to resolve the problem [part 2]
LocalProperties.setLastAccessedFile(file); // saves the accessed file
loadSavedFiles(); // load all saved files to other table (that has the same problem)  
DefaultTableModelDTM=((DefaultTableModel)tblParameters.getModel());
dtm.setRowCount(0);
currentFileParameters=(ReplacerLinkedHashMap)FileParametersDAO.getInstance().getParametersForFile(文件);//从数据库中获取特定文件的参数
对于(Map.Entry:currentFileParameters.entrySet()){
dtm.addRow(新对象[]{entry.getKey(),entry.getValue()});//添加行
}
dtm.addRow(新对象[]{“”“”});//添加空行以添加更多参数
tblParameters.revalidate();//试图解决问题的失败[第1部分]
tblParameters.repaint();//试图解决问题的失败[第2部分]
LocalProperties.setLastAccessedFile(文件);//保存访问的文件
loadSavedFiles();//将所有保存的文件加载到其他表(存在相同问题)

这张桌子以前在工作,突然停了下来。提前谢谢。

表以前工作过,但突然停止。
-我们猜不出您更改了什么。要么您的代码更改了,要么数据更改了。您需要进行一些调试,以确定更改的内容,然后对其进行修复。。首先对表模型中的数据进行硬编码,使其正确显示,以显示您了解使用JTable的基本知识。一旦成功,您就可以对数据进行解析。如果它不起作用,那么您知道您的解析是问题所在。我们不知道你数据库中的数据是什么样子的。它在JSplitPane上包装后停止工作,但我将它的位置改回JSplitPane之外,并保持不变。就像我说的,问题在于你的代码。我们不可能猜到你在干什么。使用硬编码数据创建JTable,将表添加到JScrollPane的视口中,并将滚动窗格添加到面板中。这是JTable的基本用法,请先了解基本用法。如果它不起作用,那么张贴一个演示问题的帖子。你没什么特别需要做的。只需将数据添加到模型中,表就会重新绘制自己。也许在某个地方您硬编码了表的首选大小?问题是首选大小。谢谢你的帮助,给你带来的不便也很抱歉。