javaswing,通过按钮触发事件后,再从数据库中读取数据动态显示到jtable上
时间: 2024-03-18 18:41:15 浏览: 84
Java将数据库的数据展示到JTable表格中
5星 · 资源好评率100%
可以按照以下步骤实现:
1. 在JFrame中添加一个JButton和一个JTable。
2. 为JButton添加ActionListener,当按钮被点击时触发事件。
3. 在ActionListener中连接到数据库并执行查询语句,获取数据。
4. 创建一个DefaultTableModel,并将数据和列名添加到TableModel中。
5. 将TableModel设置为JTable的model属性即可。
以下是一个简单的示例代码:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class Main {
private static JTable table;
private static DefaultTableModel model;
public static void main(String[] args) {
//创建JFrame
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建JButton和JTable
JButton button = new JButton("查询");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
//连接到数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM students";
ResultSet rs = stmt.executeQuery(sql);
//获取结果集列数和列名
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
String[] columnNames = new String[columnCount];
for (int i = 1; i <= columnCount; i++) {
columnNames[i - 1] = metaData.getColumnName(i);
}
//将数据添加到TableModel中
model = new DefaultTableModel();
model.setColumnIdentifiers(columnNames);
while (rs.next()) {
String[] rowData = new String[columnCount];
for (int i = 1; i <= columnCount; i++) {
rowData[i - 1] = rs.getString(i);
}
model.addRow(rowData);
}
//将TableModel设置为JTable的model属性
table.setModel(model);
//关闭连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
});
table = new JTable();
//将JButton和JTable添加到JFrame中显示
frame.add(button, "North");
frame.add(new JScrollPane(table), "Center");
//设置JFrame属性并显示
frame.setSize(500, 300);
frame.setVisible(true);
}
}
```
当按钮被点击时,ActionListener会连接到数据库并执行查询语句,将查询结果显示到JTable中。注意要在ActionListener中创建DefaultTableModel,并将其设置为JTable的model属性。
阅读全文