Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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_Sql_Database_Jtable_Type 2 Dimension - Fatal编程技术网

Java 从数据库中填充JTable

Java 从数据库中填充JTable,java,sql,database,jtable,type-2-dimension,Java,Sql,Database,Jtable,Type 2 Dimension,我编写这个简单的代码是为了填充jTable1,但它只是用数据库中的最后一行填充jTable1 String SQL = "select * from usernames"; ResultSet rs = stmt.executeQuery(SQL); String[] columnNames = {"Full Name", "Email"}; String n = "",e = ""; while(rs.next()) { n = rs.getString("Full_Name");

我编写这个简单的代码是为了填充
jTable1
,但它只是用数据库中的最后一行填充
jTable1

String SQL = "select * from usernames";
ResultSet rs = stmt.executeQuery(SQL);
String[] columnNames = {"Full Name", "Email"}; 
String n = "",e = "";
while(rs.next()) { 
    n = rs.getString("Full_Name");
    e = rs.getString("Email");
    Object[][]data = {{n,e}}; 
    jTable1 = new JTable(data, columnNames);

}       

是的,它将始终是最后一行,因为在while循环中,您正在创建一个新的JTable,而不是在现有JTable上追加一行。所以你要像这样,

// Code
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
while(rs.next())
{ 
    n = rs.getString("Full_Name");
    e= rs.getString("Email");
    //Object[][]data={{n,e}};
    // This will add row from the DB as the last row in the JTable. 
    model.insertRow(jtable1.getRowCount(), new Object[] {n, e});
}       

是的,它将始终是最后一行,因为在while循环中,您正在创建一个新的JTable,而不是在现有JTable上追加一行。所以你要像这样,

// Code
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
while(rs.next())
{ 
    n = rs.getString("Full_Name");
    e= rs.getString("Email");
    //Object[][]data={{n,e}};
    // This will add row from the DB as the last row in the JTable. 
    model.insertRow(jtable1.getRowCount(), new Object[] {n, e});
}       

我用这个密码解决了它

String n = "",e = "";      

DefaultTableModel model;
model = new DefaultTableModel(); 
jTable1 = new  JTable(model);

model.addColumn("Full Name");
model.addColumn("Email");

while(rs.next())  
{
    n = rs.getString("Full_Name");    
    e= rs.getString("Email");   
    model.addRow(new Object[]{n,e});
}

我用这个密码解决了它

String n = "",e = "";      

DefaultTableModel model;
model = new DefaultTableModel(); 
jTable1 = new  JTable(model);

model.addColumn("Full Name");
model.addColumn("Email");

while(rs.next())  
{
    n = rs.getString("Full_Name");    
    e= rs.getString("Email");   
    model.addRow(new Object[]{n,e});
}

我可以在这一行进行更改吗在不每次创建新JTable的情况下向jTable1添加项目。但我无法动态添加它,可能是您可以创建一个空行,然后使用setValueAt(..)方法添加。但我仍然不确定这一点。使用模型您可以轻松处理差异函数,如添加、删除、更新。我可以在这一行进行更改吗在不每次创建新JTable的情况下向jTable1添加项目。但我无法动态添加它,可能是您可以创建一个空行,然后使用setValueAt(..)方法添加。但我仍然不确定这一点。使用模型,您可以轻松处理差异功能,如添加、删除、更新。