我写了个更改图书类别的小程序单独测试已经没有问题了,但是集成到图书管理系统上去就出错。import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
class setRight extends JFrame {
JButton add=new JButton();
JButton sure=new JButton();
String kindstream=null;
JComboBox kindofuser ;
ResultSet rs =null;
Connection conn=null;
Statement state=null;
public setRight(){ Container cc=getContentPane();
add.setText("增加");
sure.setText("确定");
JLabel maxbook=new JLabel("最大借阅量");
JLabel maxday=new JLabel("最长借阅时间(天)");
final JTextField maxdayt=new JTextField();
final JTextField maxbookt=new JTextField();
JLabel user=new JLabel("用户分类");
Object kind[]={"管理员","读者"};
JPanel jp=new JPanel();
this.setTitle("用户权限管理");
try{
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=libary.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url, "", "");
state = conn.createStatement();
String sql = "select 用户分类 from userkind ";
rs=state.executeQuery(sql);
while(rs.next()){
kindstream+=rs.getString("用户分类")+",";
}
} catch (ClassNotFoundException ee) {
ee.printStackTrace();
} catch (SQLException ee) {
ee.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(state != null) {
state.close();
state = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
kind=kindstream.split(","); //这句话的错误!
kindofuser=new JComboBox(kind);
user.setBounds(40,40,100,25);
kindofuser.setBounds(40,70,100,25);
maxday.setBounds(260,40,100,25);
maxdayt.setBounds(260,70,100,25);
maxbook.setBounds(380,40,100,25);
maxbookt.setBounds(380,70,100,25);
sure.setBounds(490,70,60,25);
add.setBounds(165,70,60,25);
jp.setLayout(null);
jp.add(user);
jp.add(kindofuser);
jp.add(maxbook);
jp.add(maxday);
jp.add(maxbookt);
jp.add(maxdayt);
jp.add(add);
jp.add(sure);
add.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
kindofuser.setEditable(true);
}
});
sure.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
String kindstring=null;
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=libary.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url, "", "");
PreparedStatement pstmt=null;
kindstring=""+kindofuser.getSelectedItem();
pstmt=conn.prepareStatement("insert into userkind values(?,?,? )");
pstmt.setString(1,kindstring);
System.out.println(kindstring);
pstmt.setInt(2,4);
pstmt.setInt(3, 4);
pstmt.executeUpdate();
JOptionPane.showMessageDialog(null,"输入成功");
kindofuser.setEditable(false);
}catch(Exception ee){JOptionPane.showMessageDialog(null,"输入失败"); }
}
});
cc.add(jp);
this.setSize(600,400);
this.setLocation(200,200);
this.setVisible(true);
}
}
public class test3 extends JFrame {
public static void main(String s[]){
new setRight();
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at setRight.<init>(setRight.java:44)
at frame$5.actionPerformed(frame.java:163)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
import javax.swing.event.*;
import javax.swing.text.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
class setRight extends JFrame {
JButton add=new JButton();
JButton sure=new JButton();
String kindstream=null;
JComboBox kindofuser ;
ResultSet rs =null;
Connection conn=null;
Statement state=null;
public setRight(){ Container cc=getContentPane();
add.setText("增加");
sure.setText("确定");
JLabel maxbook=new JLabel("最大借阅量");
JLabel maxday=new JLabel("最长借阅时间(天)");
final JTextField maxdayt=new JTextField();
final JTextField maxbookt=new JTextField();
JLabel user=new JLabel("用户分类");
Object kind[]={"管理员","读者"};
JPanel jp=new JPanel();
this.setTitle("用户权限管理");
try{
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=libary.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url, "", "");
state = conn.createStatement();
String sql = "select 用户分类 from userkind ";
rs=state.executeQuery(sql);
while(rs.next()){
kindstream+=rs.getString("用户分类")+",";
}
} catch (ClassNotFoundException ee) {
ee.printStackTrace();
} catch (SQLException ee) {
ee.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(state != null) {
state.close();
state = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
kind=kindstream.split(","); //这句话的错误!
kindofuser=new JComboBox(kind);
user.setBounds(40,40,100,25);
kindofuser.setBounds(40,70,100,25);
maxday.setBounds(260,40,100,25);
maxdayt.setBounds(260,70,100,25);
maxbook.setBounds(380,40,100,25);
maxbookt.setBounds(380,70,100,25);
sure.setBounds(490,70,60,25);
add.setBounds(165,70,60,25);
jp.setLayout(null);
jp.add(user);
jp.add(kindofuser);
jp.add(maxbook);
jp.add(maxday);
jp.add(maxbookt);
jp.add(maxdayt);
jp.add(add);
jp.add(sure);
add.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
kindofuser.setEditable(true);
}
});
sure.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
String kindstring=null;
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=libary.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(url, "", "");
PreparedStatement pstmt=null;
kindstring=""+kindofuser.getSelectedItem();
pstmt=conn.prepareStatement("insert into userkind values(?,?,? )");
pstmt.setString(1,kindstring);
System.out.println(kindstring);
pstmt.setInt(2,4);
pstmt.setInt(3, 4);
pstmt.executeUpdate();
JOptionPane.showMessageDialog(null,"输入成功");
kindofuser.setEditable(false);
}catch(Exception ee){JOptionPane.showMessageDialog(null,"输入失败"); }
}
});
cc.add(jp);
this.setSize(600,400);
this.setLocation(200,200);
this.setVisible(true);
}
}
public class test3 extends JFrame {
public static void main(String s[]){
new setRight();
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at setRight.<init>(setRight.java:44)
at frame$5.actionPerformed(frame.java:163)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
kindstream+=rs.getString("用户分类")+",";
}