gpt4 book ai didi

java - 为 DefaultTableModel 创建 vector

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:54 24 4
gpt4 key购买 nike

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;

}

嗨!我正在尝试使用此方法返回要在 JTable 上使用的 DefaultTableModel。我正在努力将从数据库中提取的数据格式化为模型友好的格式。别紧张,这是我第三天进行任何类型的编程!

提前致谢:)

最佳答案

  1. 您可以使用 ResultSetMetaData 动态获取列标题← API 链接

    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));
    }
  2. 您不需要额外的VectorList 来存储数据。只需首先使用构造函数参数 (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;
  3. 或者,为了确保获得正确的列数,您可以在 while 循环中使用 Vector 并循环遍历列数据,而不是 2。

    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;

查看更多方法和构造函数,请参见 DefaultTableModel API

关于java - 为 DefaultTableModel 创建 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22238641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com