Java 在JTable中显示MS Access数据
我无法显示从MS Access到JavaJava 在JTable中显示MS Access数据,java,Java,我无法显示从MS Access到JavaJTable的数据。堆栈跟踪附着在底部 public void ShowData() throws SQLException { conn = LoginClass.ConnectDB(); String sql2 = "Select * From TEST"; Vector col = new Vector(); Vector dat = new Vector(); col.add("ID"); co
JTable
的数据。堆栈跟踪附着在底部
public void ShowData() throws SQLException {
conn = LoginClass.ConnectDB();
String sql2 = "Select * From TEST";
Vector col = new Vector();
Vector dat = new Vector();
col.add("ID");
col.add("Stu1_Name");
rs = conn.createStatement().executeQuery(sql2);
dat.clear();
if(rs.next()) {
Vector v = new Vector();
v.add(rs.getString("ID").trim());
v.add(rs.getString("StuName").trim());
dat.addElement(v);
}
jTable1.setModel(new DefaultTableModel(col,dat));
}
java.lang.ClassCastException:java.lang.String不能转换为java.util.Vector
位于javax.swing.table.DefaultTableModel.justifyRows(DefaultTableModel.java:268)
位于javax.swing.table.DefaultTableModel.setDataVector(DefaultTableModel.java:224)
位于javax.swing.table.DefaultTableModel。(DefaultTableModel.java:159)
at assignment.TEST.ShowData(TEST.java:51)
在assignment.TEST.FormWindowOpen(TEST.java:120)处
at assignment.TEST.access$000(TEST.java:25)
在assignment.TEST$1.windowOpened(TEST.java:76)
位于java.awt.Window.processWindowEvent(Window.java:2048)
位于javax.swing.JFrame.processWindowEvent(JFrame.java:296)
在java.awt.Window.processEvent(Window.java:2009)
位于java.awt.Component.dispatchEventImpl(Component.java:4872)
位于java.awt.Container.dispatchEventImpl(Container.java:2287)
位于java.awt.Window.dispatchEventImpl(Window.java:2719)
位于java.awt.Component.dispatchEvent(Component.java:4698)
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
在java.awt.EventQueue.access$200(EventQueue.java:103)
位于java.awt.EventQueue$3.run(EventQueue.java:694)
在java.awt.EventQueue$3.run(EventQueue.java:692)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
在java.awt.EventQueue$4.run(EventQueue.java:708)
在java.awt.EventQueue$4.run(EventQueue.java:706)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161)
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
在这一行代码中:
jTable1.setModel(new DefaultTableModel(col,dat));
将交换
DefaultTableModel
构造函数的参数。列名应该是第二个参数。“java.lang.ClassCastException:java.lang.String不能转换为java.util.Vector”-这是您的答案。接受2个向量的DefaultTableModel的构造函数希望第二个向量包含字符串。您没有将字符串放入dat向量。bro我甚至尝试将字符串值传递给dat,但如果我将字符串传递给dat,它仍然不起作用。它应该是这样的:dat.add(rs.getString(“ID”).trim();dat.add(rs.getString(“StuName”).trim();我必须将dat向量转换为字符串吗?
jTable1.setModel(new DefaultTableModel(col,dat));