急!-能编译能运行!就是JtableI不显示!(求教高手!)急!-能编译能运行(一点提示没有!)!就是JtableI不显示!(求教高手!)做出给50分!不胜感激!!高手指一下哪错了??
详见:http://hi.baidu.com/笑对人生110/blog
关键地方:就这有错:
public void buildTable(){
String sql= "select * from user";
try{ String strurl =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(strurl);
Statement stmt = con.createStatement(); pstmt=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=pstmt.executeQuery();
ResultSetMetaData dbmd=rs.getMetaData(); for(int i=1;i<=dbmd.getColumnCount();i++){
title.addElement(dbmd.getColumnName(i));
dtm=new DefaultTableModel(null,title);
table=new JTable(dtm);
initTable();
table.setRowHeight(24);
}
}catch(Exception e){e.printStackTrace();dispose();}
}
详见:http://hi.baidu.com/笑对人生110/blog
关键地方:就这有错:
public void buildTable(){
String sql= "select * from user";
try{ String strurl =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(strurl);
Statement stmt = con.createStatement(); pstmt=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=pstmt.executeQuery();
ResultSetMetaData dbmd=rs.getMetaData(); for(int i=1;i<=dbmd.getColumnCount();i++){
title.addElement(dbmd.getColumnName(i));
dtm=new DefaultTableModel(null,title);
table=new JTable(dtm);
initTable();
table.setRowHeight(24);
}
}catch(Exception e){e.printStackTrace();dispose();}
}
或者在初始化方法中调用buildTable()方法。
你把二者写在buildTable()中,init()又没有加以调用,当然显示不出来了
dtm=new DefaultTableModel(null,title);
现在dtm的data为null,不知LZ在initTable()中设定了没有。Sample(来自Google):import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.table.DefaultTableModel;public class SwingTest extends JFrame{ private String[][] tabledata = {
{"Chn", "3", "1", "0"},
{"Bra", "3", "0", "1"},
{"Tur", "1", "2", "1"},
{"Ger", "2", "2", "0"}}; private String[] columnNames = {"COUNTRY", "WIN", "EVEN", "LOST"}; public static void main(String[] args){
SwingTest test = new SwingTest("SwingTest"); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setVisible(true);
} SwingTest(String title){
setTitle(title);
setBounds( 10, 10, 300, 200); DefaultTableModel tableModel
= new DefaultTableModel(tabledata, columnNames); JTable table = new JTable(tableModel); JScrollPane sp = new JScrollPane(table);
sp.setPreferredSize(new Dimension(250, 70)); JPanel p = new JPanel();
p.add(sp); getContentPane().add(p, BorderLayout.CENTER);
}
}