怎么解决向数据库输入的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/20 03:21:57
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class booksystem1 implements ActionListener
{public JLabel ajl1,ajl2,bianhao,shuming,zuozhe,danwei,shijian;
Box abox1,abox2;
Container acp1;
JTextField bianhao1,shuming1,zuozhe1,danwei1,shijian1;
JButton queding1;
public void jbutton1()
{JLabel ajl1=new JLabel("请输入图书的资料:");
JLabel ajl2=new JLabel("你输入的是:");
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame af=new JFrame("添加图书");
Box abox1=Box.createVerticalBox();
Container acp1=af.getContentPane();
acp1.add(abox1);
abox1.add(ajl1);
Box abox2=Box.createVerticalBox();
JLabel bianhao=new JLabel("编号:");
JLabel shuming=new JLabel("书名:");
JLabel zuozhe=new JLabel("作者:");
JLabel danwei=new JLabel("出版单位:");
JLabel s

你呀,我发现你犯了个严重且还不容易察觉的错误!你是不是在运行时抛出NullPointerException空指针异常了呢?就是嘛,因为你在public void jbutton1()方法内有这几句代码:

JTextField bianhao1=new JTextField(10);
JTextField shuming1=new JTextField(10);
JTextField zuozhe1=new JTextField(10);
JTextField danwei1=new JTextField(10);
JTextField shijian1=new JTextField(10);

这几句代码的意思是分别创建了新的(注意是新创建的)JTextField局部变量,引用名分别为bianhao1,shuming1,zuozhe1,danwei1和shijian1。这样一来的话就与你在最前面声明的

JTextField bianhao1,shuming1,zuozhe1,danwei1,shijian1;

这句产生冲突了,既局部变量屏蔽了全局变量,以致你开头声明的全局变量bianhao1,shuming1,zuozhe1,danwei1和shijian1依旧指向空指针null!
像这么说你明白了没有(你初学的话看看书应该就明白的...)?

所以你应该将public void jbutton1()方法中引用名bianhao1,shuming1,zuozhe1,danwei1和shijian1前面的JTextField去掉,即改为:

bianhao1=new JTextField(10);
shuming1=new JTextField(10);
zuozhe1=new JTextField(10);
danwei1=new JTextField(10);
shijian1=new JTextField(10);

懂了吗?这样一来的话你在下面接收输入值时就对了!
总之希望能帮上你,还有不明白的地方欢迎提问!