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

为DefaultTableModel创建向量

吴鸿彩
2023-03-14
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上使用。我正在努力将从数据库中提取的数据格式化为模型友好的格式。放轻松点,这是我第三天做任何形式的编程!

提前致谢:)

共有1个答案

宗鸿博
2023-03-14

>

  • 您可以使用ResultSetMetadataAPI链接动态获取列标头

    ResultSetMetaData rsMeta = resultSet.getMetaData();
    int numberOfCols = rsMeta.getColumnCount();
    Vector<String> columnNames = new Vector<>();   // your columns names
    for (int i = 1; i <= numberOfCols; i++ ){
        columnsNames.add(rsMeta.getColumnName(i));
    }
    

    对于数据,您不需要额外的矢量列表。首先使用构造函数参数(Vector/Object[]colNames,int rows)声明DefaultTableModel。然后只需使用DefaultTableModel中的AddRow方法

    DefaultTableModel model = new DefaultTableModel(columnNames, 0);
    
    while (resultSet.next()) {
        String data1 = resultSet.getString(1);
        String data2 = resultSet.getString(2);
        ...
        Object[] rowData = new Object[] { data1, data2, ... };
        model.addRow(rowData);
    }
    
    return model;
    

    或者,为了确保得到正确的列数,可以在while循环中使用向量,循环遍历列数据。

    DefaultTableModel model = new DefaultTableModel(columnNames, 0);
    
    while (resultSet.next()) {
        Vector<String> row = new Vector<>();
        for (int i = 1; i <= numberOfCols; i++) {
            row.add(resultSet.getString(i));
        }
        model.addRow(row);
    }
    
    return model;
    

  •  类似资料:
    • 有ManyToOne链接的表。每个学生被分配一个方向从教育方向。当我创建学生时,所选方向被重新创建。为什么在创建学生时创建方向? 学生: 教育方向: 学生道:

    • 问题内容: 为什么hibernate对这些类使用联接表? 我既不需要联接表也不需要双向关联:( 问题答案: 因为这是它的设计方式,也是JPA规范要求它映射这样的关联的方式。如果要在广告投放表中添加联接列,请使用 这是有据可查的。

    • 我有一个从本地MySQL服务器获取信息的表。它很好地读取数据并将其发布在GUI上。 提前道谢。(给出一个关于DefaultTableModel的例子会很棒)

    • 我正在为学校做一个程序,你可以记录系统剪贴板的历史,我的老师说它是好的,但我需要添加图像。所以我得到了一些图像来表示一个图像,url,文本,或者一个文件夹。但当我尝试.addrow与图像时,它显示的是图像的来源,而不是实际的图像。这是我的课 它实际上显示的是图标而不是源?

    • 我正在尝试创建一个特征对象的向量,但我得到了类型不匹配。我还尝试使用代替for循环,但遇到了同样的问题。这是我真实代码的最小版本,我意识到这个例子不需要使用特征对象,但我的真实代码需要,因为列表中除了之外还有其他类型,它们也实现了。如何使用正确的类型创建以便将其传递给?

    • 我试图创建一个带有径向渐变的按钮,但每次我加载应用程序时,它都会崩溃。 mylayout.xml: 我的按钮。xml: 下面是错误日志。我的目标是Android SDK 22。 致命的例外:主java。lang.RuntimeException:无法启动活动组件信息{com.my.app/com.my.app.MyActivity}:android。看法充气异常:二进制XML文件行#324:在an