Java 如何从jList更改为JTable(数据库中的数据有许多列和行)
我会尽力解释清楚的。我是个笨蛋,几个小时来一直在努力解决这个问题Java 如何从jList更改为JTable(数据库中的数据有许多列和行),java,sql,swing,jtable,Java,Sql,Swing,Jtable,我会尽力解释清楚的。我是个笨蛋,几个小时来一直在努力解决这个问题 我制作了一个Java应用程序,它显示它所连接的数据库中的数据。(ODBC/Microsoft SQL) 当我为应用程序制作GUI时,我决定在jList中显示数据 然后我意识到信息太多,我需要列名等(因此是jTable) 我想做的是更改,使数据显示在jTable中,而不是jList中。但是我不知道怎么做。 这就是代码目前的样子: GUI private void jComboBox1_actionPerformed(Action
- 我制作了一个Java应用程序,它显示它所连接的数据库中的数据。(ODBC/Microsoft SQL)
- 当我为应用程序制作GUI时,我决定在jList中显示数据
- 然后我意识到信息太多,我需要列名等(因此是jTable)
private void jComboBox1_actionPerformed(ActionEvent e)throws SQLException {
String selected = jComboBox1.getSelectedItem().toString();
String[]tmp = conn.showTable1(selected);
jList1.setListData(tmp);
}
控制器
public String[] showTable1(String table)throws SQLException {
ArrayList<String> list1 = dal.showTable1(table);
return list1.toArray(new String[list1.size()]);
}
public ArrayList<String> showTable1(String table)throws SQLException {
ArrayList<String> list1 = new ArrayList<String>();
Statement stmt = con.createStatement();
String query1 = "select * from [" +table+"]";
System.out.println(query1);
ResultSet rset = stmt.executeQuery(query1);
ResultSetMetaData rsmd = rset.getMetaData();
while (rset.next()) {
String result = "";
for(int i = 1; i < rsmd.getColumnCount(); i++) {
result += rset.getString(i) + "\t" + "\t";
//
}
list1.add(result);
}
return list1;
}
public String[]showTable1(字符串表)抛出SQLException{
ArrayList list1=dal.showTable1(表);
返回list1.toArray(新字符串[list1.size()]);
}
数据访问层
public String[] showTable1(String table)throws SQLException {
ArrayList<String> list1 = dal.showTable1(table);
return list1.toArray(new String[list1.size()]);
}
public ArrayList<String> showTable1(String table)throws SQLException {
ArrayList<String> list1 = new ArrayList<String>();
Statement stmt = con.createStatement();
String query1 = "select * from [" +table+"]";
System.out.println(query1);
ResultSet rset = stmt.executeQuery(query1);
ResultSetMetaData rsmd = rset.getMetaData();
while (rset.next()) {
String result = "";
for(int i = 1; i < rsmd.getColumnCount(); i++) {
result += rset.getString(i) + "\t" + "\t";
//
}
list1.add(result);
}
return list1;
}
public ArrayList showTable1(字符串表)抛出SQLException{
ArrayList list1=新的ArrayList();
语句stmt=con.createStatement();
String query1=“从[“+表格+”]中选择*”;
系统输出打印项次(查询1);
结果集rset=stmt.executeQuery(查询1);
ResultSetMetaData rsmd=rset.getMetaData();
while(rset.next()){
字符串结果=”;
对于(int i=1;i
请帮忙
问候,Chris请看以下几个简单的建议:
ResultSetTableModel
表
1.公共结果集问题模型(结果集rs){this(rs,0);}2。ListTableModel模型=ListTableModel.createModelFromResultSet(resultSet);JTable table=新的JTable(模型);我没有得到它,因为我有组合框。当我在组合框中选择一个字符串时,它会自动在jList中显示数据。@Chris,我不理解你的评论。组合框仅用于构建SQL查询。一旦您有了一个结果集,您就可以创建一个TableModel并在JTable中显示数据。JTable的结构与db中的table非常相似,rest在Oracle教程-如何使用表中进行了描述