我对Java很陌生,而且我正在尝试一个小小的销售点计划,只是为了教会自己它是如何工作的。我的目标是从我的数据库中获取一个表,该表存储库存数据并将其显示在我制作的JPanel中。我认为我所做的会起作用,但当我点击我的加载数据库按钮时,什么也没有显示。这是我第一次使用java.sql,所以我对它的了解非常基础。它甚至可能是一个我甚至看不到的明显问题。这就是我正在做的事情。
package gui;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import net.proteanit.sql.DbUtils;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class tableTest {
private JFrame frame;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
tableTest window = new tableTest();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public tableTest() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 804, 484);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 11, 768, 382);
frame.getContentPane().add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
JButton tableBtn = new JButton("Load Data");
tableBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
String tableQuery = "SELECT * FROM inventory";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bazaar", "root", "password");
PreparedStatement ps = con.prepareStatement(tableQuery);
ResultSet rs = ps.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
}
catch (Exception e) {
e.printStackTrace();
}
}
});
tableBtn.setBounds(350, 411, 89, 23);
frame.getContentPane().add(tableBtn);
}
}
刚刚编辑了代码,让它看起来更简单一些。我在数据库中有数据,所以我知道这不是问题,但我无法弄清楚如何将数据显示在表格中。