gpt4 book ai didi

java - JTable 未填充从数据库中提取的数据

转载 作者:行者123 更新时间:2023-12-01 13:43:55 25 4
gpt4 key购买 nike

首先,我有一个已设置且有效的数据库连接,现在的问题是 - 我有一个搜索按钮,它连接了一个 Action 监听器,单击它时应该填充一个 JTable,但是该表没有被填充,我不明白为什么!下面显示了我的连接的片段以及尝试填充表的代码。

public void search()
{
btnSearch.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
//String name = txtname.getText();

String dataSourceName = "securitySystem";
String dbUrl = "jdbc:odbc:" + dataSourceName;

try{
//Type of connection driver used
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//Connection variable or object param: dbPath, userName, password
Connection con = DriverManager.getConnection(dbUrl, "", "");

Statement statement = con.createStatement();

ResultSet rs = statement.executeQuery("select * from accesshistory");

String name = "";

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

model.addColumn("Full Name");

while(rs.next())
{
name = rs.getString("Name");
model.addRow(new Object[]{name});
}

statement.close();
con.close();
}catch (Exception e) {
try {
throw e;
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});

最佳答案

您似乎在 search() 方法中分配了新的表格组件。但这个新表甚至没有添加到容器中。不要重新分配表组件,而是使用 setModel()刷新数据。您还可以更新现有模型。请参阅How to Use Tables例如。

此外,为了获得更好的用户体验和性能,请勿在事件调度线程上执行长时间运行的任务,例如数据库交互。为此,请使用辅助线程或 SwingWorker。请参阅Concurrency in Swing了解详细信息和示例。

关于java - JTable 未填充从数据库中提取的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20479995/

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