我设计的界面是左边JTree,右边JTable,但是运行后,点击树叶节点,右边JTable没显示,无法从数据库读信息,谁帮我看看怎么回事,我触发器用的是JTree的TreeSelectionListener,要加MouseListener不?附代码
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;public class Graduate2 extends JFrame implements TreeSelectionListener{
private JScrollPane jsp_tree,jsp_table;
private JTree tree;
private JTable tb;
//private Conn conect;
String names[];
int i,j,RowNum,ColNum;
Object info[][];
String sqlstr;
ResultSet res;
Statement sta;
public Graduate2(){
super("研究生信息查询系统");
Container c = getContentPane();
//定义根节点
DefaultMutableTreeNode root = new DefaultMutableTreeNode("区域选择");
//定义树叶节点
DefaultMutableTreeNode node_e = new DefaultMutableTreeNode("华东");
DefaultMutableTreeNode node_s = new DefaultMutableTreeNode("华南");
DefaultMutableTreeNode node_n = new DefaultMutableTreeNode("华北");
DefaultMutableTreeNode node_c = new DefaultMutableTreeNode("华中");
root.add(node_e);
root.add(node_s);
root.add(node_n);
root.add(node_c);
DefaultMutableTreeNode leafnode1 = new DefaultMutableTreeNode("上海交通大学");
node_e.add(leafnode1);
DefaultMutableTreeNode leafnode2 = new DefaultMutableTreeNode("厦门大学");
node_e.add(leafnode2);
DefaultMutableTreeNode leafnode3 = new DefaultMutableTreeNode("复旦大学");
node_e.add(leafnode3);
DefaultMutableTreeNode leafnode4 = new DefaultMutableTreeNode("中山大学");
node_s.add(leafnode4);
DefaultMutableTreeNode leafnode5 = new DefaultMutableTreeNode("深圳大学");
node_s.add(leafnode5);
DefaultMutableTreeNode leafnode6 = new DefaultMutableTreeNode("广西大学");
node_s.add(leafnode6);
DefaultMutableTreeNode leafnode7 = new DefaultMutableTreeNode("东北大学");
node_n.add(leafnode7);
DefaultMutableTreeNode leafnode8 = new DefaultMutableTreeNode("东北财经大学");
node_n.add(leafnode8);
DefaultMutableTreeNode leafnode9 = new DefaultMutableTreeNode("哈尔滨工业大学");
node_n.add(leafnode9);
DefaultMutableTreeNode leafnode_10 = new DefaultMutableTreeNode("武汉大学");
node_c.add(leafnode_10);
DefaultMutableTreeNode leafnode_11 = new DefaultMutableTreeNode("华中科技大学");
node_c.add(leafnode_11);
DefaultMutableTreeNode leafnode_12 = new DefaultMutableTreeNode("中南财经政法大学");
node_c.add(leafnode_12);
tree = new JTree(root);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);//只能选一个结点
tree.addTreeSelectionListener(this); //监听器
jsp_tree = new JScrollPane(tree);
info = new Object[RowNum][];
names = new String[ColNum];
tb =new JTable(info,names);
//tb.setPreferredScrollableViewportSize(new Dimension(400,50));
jsp_table = new JScrollPane(tb);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,jsp_tree,jsp_table);
c.add(splitPane);
//jsp.setViewportView(tree);
//c.add(jsp);
pack();
setSize(800,600);
setResizable(false);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
//树节点
public void valueChanged(TreeSelectionEvent e){
JTree tree = (JTree)e.getSource();
DefaultMutableTreeNode selectionNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
String nodeName = selectionNode.toString();
if(selectionNode.isLeaf()){
if(selectionNode.toString().equals("中南财经政法大学")){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce){
System.out.println("SQLException:" + ce.getMessage());
}
try{
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=mydb";
Connection connection=DriverManager.getConnection(url,"","");
sta=connection.createStatement();
sqlstr="select count(*) from zncjzf"; //取得数据表的记录数和字段数
res=sta.executeQuery(sqlstr);
res.next();
RowNum=res.getInt(1);
sqlstr="select * from zncjzf";
res=sta.executeQuery(sqlstr);
ResultSetMetaData rsmd=res.getMetaData();
ColNum=rsmd.getColumnCount();
names=new String[ColNum]; //构造JTable
for (i=1;i<=ColNum;i++) names[i-1]=rsmd.getColumnName(i);
info=new Object[RowNum][];
i=0;
while(res.next()){
info[i]=new Object[ColNum];
for (j=1;j<=ColNum;j++){
info[i][j-1]=res.getObject(j);
}
i++;
}
}
catch(SQLException de){
System.out.println("SQLException:" + de.getMessage());
}
}
}
}
public static void main(String args[]){
new Graduate2();
}
}
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;public class Graduate2 extends JFrame implements TreeSelectionListener{
private JScrollPane jsp_tree,jsp_table;
private JTree tree;
private JTable tb;
//private Conn conect;
String names[];
int i,j,RowNum,ColNum;
Object info[][];
String sqlstr;
ResultSet res;
Statement sta;
public Graduate2(){
super("研究生信息查询系统");
Container c = getContentPane();
//定义根节点
DefaultMutableTreeNode root = new DefaultMutableTreeNode("区域选择");
//定义树叶节点
DefaultMutableTreeNode node_e = new DefaultMutableTreeNode("华东");
DefaultMutableTreeNode node_s = new DefaultMutableTreeNode("华南");
DefaultMutableTreeNode node_n = new DefaultMutableTreeNode("华北");
DefaultMutableTreeNode node_c = new DefaultMutableTreeNode("华中");
root.add(node_e);
root.add(node_s);
root.add(node_n);
root.add(node_c);
DefaultMutableTreeNode leafnode1 = new DefaultMutableTreeNode("上海交通大学");
node_e.add(leafnode1);
DefaultMutableTreeNode leafnode2 = new DefaultMutableTreeNode("厦门大学");
node_e.add(leafnode2);
DefaultMutableTreeNode leafnode3 = new DefaultMutableTreeNode("复旦大学");
node_e.add(leafnode3);
DefaultMutableTreeNode leafnode4 = new DefaultMutableTreeNode("中山大学");
node_s.add(leafnode4);
DefaultMutableTreeNode leafnode5 = new DefaultMutableTreeNode("深圳大学");
node_s.add(leafnode5);
DefaultMutableTreeNode leafnode6 = new DefaultMutableTreeNode("广西大学");
node_s.add(leafnode6);
DefaultMutableTreeNode leafnode7 = new DefaultMutableTreeNode("东北大学");
node_n.add(leafnode7);
DefaultMutableTreeNode leafnode8 = new DefaultMutableTreeNode("东北财经大学");
node_n.add(leafnode8);
DefaultMutableTreeNode leafnode9 = new DefaultMutableTreeNode("哈尔滨工业大学");
node_n.add(leafnode9);
DefaultMutableTreeNode leafnode_10 = new DefaultMutableTreeNode("武汉大学");
node_c.add(leafnode_10);
DefaultMutableTreeNode leafnode_11 = new DefaultMutableTreeNode("华中科技大学");
node_c.add(leafnode_11);
DefaultMutableTreeNode leafnode_12 = new DefaultMutableTreeNode("中南财经政法大学");
node_c.add(leafnode_12);
tree = new JTree(root);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);//只能选一个结点
tree.addTreeSelectionListener(this); //监听器
jsp_tree = new JScrollPane(tree);
info = new Object[RowNum][];
names = new String[ColNum];
tb =new JTable(info,names);
//tb.setPreferredScrollableViewportSize(new Dimension(400,50));
jsp_table = new JScrollPane(tb);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,jsp_tree,jsp_table);
c.add(splitPane);
//jsp.setViewportView(tree);
//c.add(jsp);
pack();
setSize(800,600);
setResizable(false);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
//树节点
public void valueChanged(TreeSelectionEvent e){
JTree tree = (JTree)e.getSource();
DefaultMutableTreeNode selectionNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
String nodeName = selectionNode.toString();
if(selectionNode.isLeaf()){
if(selectionNode.toString().equals("中南财经政法大学")){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce){
System.out.println("SQLException:" + ce.getMessage());
}
try{
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=mydb";
Connection connection=DriverManager.getConnection(url,"","");
sta=connection.createStatement();
sqlstr="select count(*) from zncjzf"; //取得数据表的记录数和字段数
res=sta.executeQuery(sqlstr);
res.next();
RowNum=res.getInt(1);
sqlstr="select * from zncjzf";
res=sta.executeQuery(sqlstr);
ResultSetMetaData rsmd=res.getMetaData();
ColNum=rsmd.getColumnCount();
names=new String[ColNum]; //构造JTable
for (i=1;i<=ColNum;i++) names[i-1]=rsmd.getColumnName(i);
info=new Object[RowNum][];
i=0;
while(res.next()){
info[i]=new Object[ColNum];
for (j=1;j<=ColNum;j++){
info[i][j-1]=res.getObject(j);
}
i++;
}
}
catch(SQLException de){
System.out.println("SQLException:" + de.getMessage());
}
}
}
}
public static void main(String args[]){
new Graduate2();
}
}
然後再輸出你的sql 看看 這個sql的字符串在數據庫中能不能執行,如果能執行 就不是數據庫的問題了~ 是你連接的有問題
最后看看 有沒有查出數據 在查詢后面 輸出下查詢的結果 最后updateUI()一下jtable