Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否删除jtable中未使用的行(空行)?_Java_Swing_Jtable - Fatal编程技术网

Java 是否删除jtable中未使用的行(空行)?

Java 是否删除jtable中未使用的行(空行)?,java,swing,jtable,Java,Swing,Jtable,关于删除jtable中未使用的行的问题我正在使用defaulttablemodel我的表已经有一些数据&当我更新它时,将一些列留空以稍后更新主题,因此它们是空列。。我想在保存数据之前用按钮删除主题。。我实际上试过这个代码: private void btn_ClearActionPerformed(java.awt.event.ActionEvent evt) { table.setAutoC

关于删除
jtable
中未使用的行的问题我正在使用
defaulttablemodel
我的表已经有一些数据&当我更新它时,将一些列留空以稍后更新主题,因此它们是空列。。我想在保存数据之前用按钮删除主题。。我实际上试过这个代码:

private void btn_ClearActionPerformed(java.awt.event.ActionEvent evt) {                                              
      table.setAutoCreateRowSorter(true); 

      TableRowSorter sorter = (TableRowSorter) table.getRowSorter();
      sorter.setRowFilter(new RowFilterImpl());                
}
for (int i = model.getRowCount() - 1; i >= 0; i--)
{
     Object col1 = model.getValueAt( i,model.getColumnCount() - 6);
     Object col2 = model.getValueAt( i,model.getColumnCount() - 11);

     if (col1 == null || col2 == null)
         model.removeRow(i);
}

我也试过:

private void btn_ClearActionPerformed(java.awt.event.ActionEvent evt) {
    table.setAutoCreateRowSorter(true);
    TableRowSorter sorter = (TableRowSorter) table.getRowSorter();
    sorter.setRowFilter(new RowFilter<TableModel, Integer>() {
        @Override
        public boolean include(RowFilter.Entry<? extends TableModel, ? extends Integer> entry) {
            boolean included = true;
            Object cellValue = entry.getModel().getValueAt(entry.getIdentifier(), 0);
            if (cellValue == null || cellValue.toString().trim().isEmpty()) {
                included = false;
            }
            return included;
        }
    });
}
我遇到了同样的问题,我发现下面的代码就是这个问题,所以我删除了它。。。我还发现,它计算您选择或单击一行的次数,然后将其调整为您单击的次数

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
       int lastRow = -1;

       public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
               if (lastRow != -1) {
                  table.setRowHeight(lastRow, table.getRowHeight());
              }

              int row = table.getSelectedRow();
              table.setRowHeight(row, 23);
              lastRow = row;
         }
       }
   });
有什么想法吗,伙计们


thanx预先创建一个循环以从模型中删除数据

可能是这样的:

for (int i = model.getRowCount() - 1; i >= 0; i--)
{
    if (column?? == null && column?? == null)
        model.removeRow(i);
}
在表.setRowHeight()中添加了上述问题

嗯,这应该是原始问题的一部分。我们怎么知道你有自定义逻辑做一些奇怪的事情

在以后的帖子中,我们会用一个恰当的例子来说明这个问题,这样我们就不必猜测你在做什么

我遇到了同样的问题,它会调整行的大小

然后删除侦听器:

  • 删除侦听器
  • 删除行
  • 添加侦听器

  • 创建循环以从模型中删除数据

    可能是这样的:

    for (int i = model.getRowCount() - 1; i >= 0; i--)
    {
        if (column?? == null && column?? == null)
            model.removeRow(i);
    }
    
    在表.setRowHeight()中添加了上述问题

    嗯,这应该是原始问题的一部分。我们怎么知道你有自定义逻辑做一些奇怪的事情

    在以后的帖子中,我们会用一个恰当的例子来说明这个问题,这样我们就不必猜测你在做什么

    我遇到了同样的问题,它会调整行的大小

    然后删除侦听器:

  • 删除侦听器
  • 删除行
  • 添加侦听器

  • 工作,但我得到同样的问题,它调整行大小。。。我还不知道这是什么,为什么会发生。。无论如何,感谢u@camickr的回答。我在表中添加了上述问题。setRowHeight();如何删除和重新添加侦听器?有效,但我遇到了相同的问题,它会调整行的大小。。。我还不知道这是什么,为什么会发生。。无论如何,感谢u@camickr的回答。我在表中添加了上述问题。setRowHeight();如何删除和重新添加侦听器?