怎么我在SWING窗口上点击用户信息(jb3监听器)调用result方法时报 这行"jt.setModel(new DefaultTableModel(tablebase,columntitle)); "有错误.... 代码如下~~~
package MyTest;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class Test02 {
JFrame jf=new JFrame("用户信息管理");
Container cont;
JPanel jp1,jp2;
JTable jt;
Vector tablebase=new Vector();
Vector columntitle=new Vector();
public void init(){
cont=jf.getContentPane();
jp1 =new JPanel();
jp2 =new JPanel();
JButton jb1=new JButton("注册");
JButton jb2=new JButton("重置");
JButton jb3=new JButton("用户信息");
JLabel jt1=new JLabel("用户名:");
JLabel jt2=new JLabel("密码:");
JLabel jt3=new JLabel("Email:");
final JTextField jf1=new JTextField(15);
final JPasswordField jf2=new JPasswordField(15);
final JTextField jf3=new JTextField(15);
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);
jp2.add(jt1);
jp2.add(jf1);
jp2.add(jt2);
jp2.add(jf2);
jp2.add(jt3);
jp2.add(jf3);
columntitle.add("用户名");
columntitle.add("E_mail");
jt=new JTable(tablebase,columntitle);
JScrollPane js=new JScrollPane(jt);
cont.add(js,"South");
jt.setEnabled(true);
jb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
getConnection(jf1.getText(),jf2.getText(),jf3.getText());
}

});
jb2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
jf1.setText("");
jf2.setText("");
jf3.setText("");
}

});
jb3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
new Test02().Result();
}

});
cont.add(jp1,"North");
cont.add(jp2);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.pack();
jf.setLocation(300,300);
jf.setVisible(true);
}
public static void getConnection(String str1,String str2,String str3){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=DBUserInfo","sa","sa");
PreparedStatement pre=con.prepareStatement("insert into table2 values(?,?,?)");
pre.setString(1, str1);
pre.setString(2, str2);
pre.setString(3, str3);
pre.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}

}
public  void Result(){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
Connection con2 = null;
try {
con2 = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=DBUserInfo","sa","sa");
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
try {
Statement st=con2.createStatement();
String str4="select * from table2";
ResultSet rs=st.executeQuery(str4);
while(rs.next()){
Vector row=new Vector();
row.add(rs.getString(1));
row.add(rs.getString(3));
tablebase.add(row);
}
columntitle.add("用户名");
columntitle.add("E_mail");
jt.setModel(new DefaultTableModel(tablebase,columntitle));
jt.validate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
new Test02().init();
}
 }