当前位置: 首页 > 知识库问答 >
问题:

Jtable未返回最后一个单元格值

刘德义
2023-03-14

这是我的表类

package build;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class Table
{
private ArrayList<Column> columns;
private String NAME;
private static int count=0;
public Table() 
{
    setColumns(new ArrayList<Column>());
    NAME=new String();

    this.NAME="Table"+count;
    count++;
}

public void AddColumn(Column column)
{
    for(Column c: getColumns())
    {
       if(c.getname().equals(column.getname())){return;}
    }

    getColumns().add(column);

}
public int getCount(){return count;}
public void SaveToFile() throws IOException
{


    FileWriter fw = new FileWriter("C:/Users/Ashad/Desktop/text.txt", true);
    BufferedWriter bw = new BufferedWriter(fw);
     bw.write("\r\n");
    bw.write(this.NAME);
     bw.write("\r\n");

 for(Column c: getColumns())
 {
 bw.write("\r\n");
        bw.write(c.getname()+"  ");

        bw.write(c.getdatatype()+"  ");


 if(c.getPK()== true)
 {
        bw.write("true"+"  ");

 }    
    else
    {   bw.write("false"+"  ");

    }
if(c.getNN()== true)
{
    bw.write("true"+"   ");

}     
else
    {bw.write("false"+"  "); } 



 }
 bw.close();
}

  public boolean DeleteColumn(String name)
  {
    for (Column c : getColumns())
    {
        if (c.getname().equals(name)) {return getColumns().remove(c);}
    }
    return false;
  }

 public void viewColumns()
 {
      System.out.append(NAME+"  ");

    for(Column c: getColumns())
    {
      System.out.append("\n");
      System.out.append(c.getname()+"  ");

      System.out.append( c.getdatatype()+"  ");

      if(c.getPK()== true)
      {
         System.out.print(true);
      }   
          else
        System.out.print(false);  
      }
     }

public String getNAME() {

    return NAME;
}

public ArrayList<Column> getColumns() {
    return columns;
}

public void setColumns(ArrayList<Column> columns) {
    this.columns = columns;
}



  }
 table.setModel(new DefaultTableModel(

                  new Object[][] {
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},

                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  {null, null, null, null},
                  },
        new String[] {
            "Column Name", "Data Type", "NN", "PK"
                        }
              ) {
                    Class[] columnTypes = new Class[] {
                String.class, Object.class, Boolean.class, Boolean.class
            };
        public Class getColumnClass(int columnIndex) {
                return columnTypes[columnIndex];
        }
 btnNewButton.addActionListener(new ActionListener() 
   {
    @Override
    public void actionPerformed(ActionEvent e) {

      // getTable Values 
       for (int r = 0; r < model.getRowCount(); r++)
        {
           if((String)model.getValueAt(r, 0) != null)
         {

                    Column col=new Column();

            col.setname((String) model.getValueAt(r, 0)) ;
            col.setdatatype((String) model.getValueAt(r, 1));


             /*  if((Boolean)model.getValueAt(r, 2)== true)
                       {
                col.setPK(true); 
               }


             if((Boolean)model.getValueAt(r, 3)== true)
               {
                    col.setNN(true); 
                    }
               */

                    T.AddColumn(col);

             }
                else 
                       break;
            }
           try {
            T.SaveToFile();
            } catch (IOException e1) {

            e1.printStackTrace();
                    }
            T.viewColumns();
           frame.setVisible(false); 
                        }
                    });

如果((布尔)model.getValueat(r,3)==true){col.setpk(true);}

它给出错误,因为返回类型是布尔型。

共有1个答案

雍志文
2023-03-14

它不保存最后一个值

也许表停止编辑会有所帮助。

 类似资料:
  • 我有个问题。。。代码运行正常,但无法获取最后一行和最后一列的最后一个单元格的值。下面是代码。。。请引导 使用此代码,我动态地向JTable添加行:if(e.getSource()==addb){ 下面是从JTable行以及以后而不是系统中获取值的代码。出来println()我将向数据库发送数据。。。

  • 问题内容: 我有一个pojo,尝试将csv文件中的数据读取到列表中,然后将其打印出来。从文件读取工作正常,在读取/添加的瞬间,我可以看到正确的ID,但是一旦尝试将其全部打印回来,我只会得到列表的最后一个元素。以下是我正在尝试的: 我从上面得到的输出是: 团队编号为:1 团队编号为:2 团队编号为:3 团队编号为:4 球队信息:4 球队信息:4 球队信息:4 球队信息:4 我想念什么..?为什么前三

  • 我在创造一个小游戏。所以现在我有了一个只有5行的JTable。 单击按钮后,我希望保存表中的值。我的问题是,最后一个值每次都为null。 例 Val来自表:user1,user2,user3,user4,user5 预期输出:[user1,user2,user3,user4,user5] 输出:[user1,user2,user3,user4,null] 这就是我从表中获取数据的方式 可运行示例

  • 我有一个jtable保存账本文件记录并将它们发送出去。

  • 我正在尝试使用load_工作簿方法读取xlsx,它运行得相当好。但是,如果列中有空单元格,并且工作簿加载了“使用迭代器或只读”选项集,则rows()方法会在该列中的每个原始单元格值之后向输出中添加一个“无”值。如果数据范围内的列中没有空单元格,则没有问题。 请在下面找到这段代码和我正在阅读的excel文件的数据: Excel文件:book1.xlsx 数据范围:(A列,第1-7行) 空电池 1个

  • 问题内容: 你们真是太棒了,为我在最后一个问题上指明了正确的方向,我在这里对我原来的问题进行了扩展: 如何将JTable列设置为String并排序为Double? 由于现在我使用自定义单元格渲染器将价格列的格式设置为$ ###,## 0.00,因此我现在还为该单元格设置了JTextField编辑器。单元格的编辑工作正常,除了更新值时,自定义渲染器中设置的数字格式似乎不再格式化单元格(在提交编辑后,