首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为DefaultTableModel创建向量

为DefaultTableModel创建向量
EN

Stack Overflow用户
提问于 2014-03-06 23:48:26
回答 1查看 4.2K关注 0票数 1
代码语言:javascript
复制
public static DefaultTableModel localQuery(String searchTerm){

    List<String[]> result = new ArrayList<String[]>();
    String[] rowResult = new String[7];
    Vector<String[]> rows = new Vector<String[]>();
    Vector<String> columnNames = new Vector<String>();
    Statement stmt = null;      
    try {
      stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery(searchTerm);
      while(rs.next()){
          rowResult = new String[13];

          String currentId= rs.getString("CurrentId");
          String manufacturer = rs.getString("Constructor");
          String type = rs.getString("ACType");
          String series = rs.getString("Series");
          String index = rs.getString("KeyNo");
          String operator = rs.getString("Operator");
          String baseCountry = rs.getString("Home_Country");
          String baseAirport = rs.getString("Home_Airfield");
          String cn = rs.getString("Con");
          String lineNo = rs.getString("LineNum");
          String hex = rs.getString("Hexcode");
          String selcal=rs.getString("Selcal");
          String acName = rs.getString("ACName");

          rowResult[0] = (currentId);
          rowResult[1] = (manufacturer);
          rowResult[2] = (type);
          rowResult[3] = (series);
          rowResult[4] = (operator);
          rowResult[5] = (baseCountry);
          rowResult[6] = (baseAirport);
          rowResult[7] = (cn);
          rowResult[8] = (lineNo);
          rowResult[9] = (hex);
          rowResult[10] = (selcal);
          rowResult[11] = (acName);
          rowResult[12]= (index);
          result.add(rowResult);

      }

    columnNames.add("Reg.");
    columnNames.add("Manufacturer");
    columnNames.add("Type");
    columnNames.add("Series");
    columnNames.add("Operator");
    columnNames.add("Home Country");
    columnNames.add("Home Airfield");
    columnNames.add("C/N");
    columnNames.add("Line #");
    columnNames.add("Hex");
    columnNames.add("Selcal");
    columnNames.add("Aircraft Name");
    columnNames.add("");





      rs.close();
      stmt.close();


    //Convert from List<String[]> to a suitable vector for  resultTable... Help!!!


  DefaultTableModel resultTable = new DefaultTableModel(rows, columnNames);
  return resultTable;

    }

嗨!我正在尝试这个方法来返回一个DefaultTableModel,以便在JTable上使用。我很难将从数据库中提取的数据格式化为一个模型友好的格式。放松点,这是我的第三天任何类型的编程!

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-07 07:57:23

  1. 可以使用ResultSetMetaData←API链接动态获取列标题。 ResultSetMetaData rsMeta = resultSet.getMetaData();int numberOfCols = rsMeta.getColumnCount();向量columnNames =新Vector<>();//您的列名为(int i= 1;i <= numberOfCols;i++ ){ columnsNames.add(rsMeta.getColumnName(i));}
  2. 对于数据,您不需要额外的VectorList。首先使用构造函数参数( Vector/Object[] colNames, int rows)声明您的( Vector/Object[] colNames, int rows)。然后,只需使用来自DefaultTableModel的方法DefaultTableModel DefaultTableModel模型=新DefaultTableModel(columnNames,0);while (resultSet.next()) { String data1 = resultSet.getString(1);String data2 = resultSet.getString(2);.Object[] rowData =新Object[] { data1,data2,…};model.addRow(rowData);}返回模型;
  3. 或者,为了确保获得正确的列数,您可以在while循环中使用Vector,并遍历列数据。 DefaultTableModel模型=新DefaultTableModel(columnNames,0);resultSet.next(()){向量行=新Vector<>();for (int I= 1;i <= numberOfCols;i++) { row.add(resultSet.getString(i));}model.addRow(行);}返回模型;

查看更多方法和构造函数(参见DefaultTableModel API )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22238641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档