java图形界面编译出错~新手求助!
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
class Update extends JFrame implements ActionListener
{
JFrame f;
Container cp;
JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;
JButton jbt1,jbt2;//按钮,确定、取消
JLabel label;//标签:修改密码
JTextField tf0,tf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8,tf9,tf10;
String sno;
Update(){}
Update(String bookno)
{
sno=bookno;
f=new JFrame();
cp=f.getContentPane(); // 初始化
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jp4=new JPanel();
jpanelWest=new JPanel();
jp=new JPanel();
jbt1=new JButton("确定");
jbt2=new JButton("取消");
int size=20;
label=new JLabel("修改图书信息",SwingConstants.CENTER);
label.setFont(new Font("修改图书信息",Font.PLAIN,size));//加粗,字体大小20
label.setForeground(Color.blue);
tf1=new JTextField(20);
tf2=new JTextField(20);
tf3=new JTextField(20);
tf4=new JTextField(20);
tf5=new JTextField(20);
tf6=new JTextField(20);
tf7=new JTextField(20);
tf8=new JTextField(20);
tf9=new JTextField(20);
tf10=new JTextField(20);
//布局,添加控件
jp1.add(jbt1);
jp1.add(jbt2);
jp1.add(new JLabel("欢迎登陆"));
JPanel jpanel=new JPanel();
jpanel.add(label);
JPanel pp4=new JPanel();
JPanel jpane4=new JPanel();
cp.add(jpanel,"North");
JPanel pp2=new JPanel(new GridLayout(6,1));
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel("输入要修改的图书号: ",SwingConstants.RIGHT));
pp2.add(tf0);
pp4.add(new JLabel("原书名: ",SwingConstants.RIGHT));
pp2.add(tf1);
pp4.add(new JLabel("现书名: ",SwingConstants.RIGHT));
pp2.add(tf2);
pp4.add(new JLabel("原单价: ",SwingConstants.RIGHT));
pp2.add(tf3);
pp4.add(new JLabel("现单价: ",SwingConstants.RIGHT));
pp2.add(tf4);
pp4.add(new JLabel("原作者: ",SwingConstants.RIGHT));
pp2.add(tf5);
pp4.add(new JLabel("现作者: ",SwingConstants.RIGHT));
pp2.add(tf6);
pp4.add(new JLabel("原出版社: ",SwingConstants.RIGHT));
pp2.add(tf7);
pp4.add(new JLabel("现出版社: ",SwingConstants.RIGHT));
pp2.add(tf8);
pp4.add(new JLabel("原入库时间: ",SwingConstants.RIGHT));
pp2.add(tf9);
pp4.add(new JLabel("现入库时间: ",SwingConstants.RIGHT));
pp2.add(tf10);
pp2.add(new JLabel());
JPanel jpbutton=new JPanel();
jpbutton.add(jbt1);
jpbutton.add(jbt2);
pp2.add(jpbutton);
cp.add(pp4,"West");
cp.add(pp2,"Center");
cp.add(jpane4,"East");
f.setSize(500,450);
f.setVisible(true);
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
}
public void updateM()
{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}
try{
//直接使用当前类目录下的数据库文件
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=Book","sa","xuqianqian");
Statement sql=con.createStatement();
String utf0=tf0.getText().trim();
String queryMima="select * from book where 图书号='"+utf0+"'";
ResultSet rs=sql.executeQuery(queryMima);
if(rs.next())
{
String newname=tf2.getText().trim();
String newcost=tf4.getText().trim();
String newauthor=tf6.getText().trim();
String newchuban=tf8.getText().trim();
String newruku=tf10.getText().trim();
String s="update book set 图书名='"+newname+"',作者='"+newauthor+"',单价='"+newcost+"',出版社='"+newchuban+"',入库时间='"+newruku+"' where 图书号 ='"+utf0+"'";
sql=con.createStatement();
int update=sql.executeUpdate(s);
if(update==1)
{
JOptionPane.showMessageDialog(f,"图书信息修改成功!");
}
con.close();
f.repaint();
}else{
JOptionPane.showMessageDialog(null,"该用户不存在","警告!",
JOptionPane.YES_NO_OPTION);
}
tf0.setText("");
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("");
tf5.setText("");
tf6.setText("");
tf7.setText("");
tf8.setText("");
tf9.setText("");
tf10.setText("");
} catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("确定"))
{
if(tf0.getText().equals("")||tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")||tf7.getText().equals("")||tf8.getText().equals("")||tf9.getText().equals("")||tf10.getText().equals(""))
{
JOptionPane.showMessageDialog(null,"请填写图书的所有信息","提示",
JOptionPane.YES_NO_OPTION);
return;
}
}
else if(cmd.equals("取消"))
f.hide();
}
public static void main(String[]args)
{
new Update("");
}
}
报错:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1045)
at java.awt.Container.add(Container.java:365)
at Update.<init>(Update.java:57)
at Update.main(Update.java:157)
请问哪里有问题~~
相关推荐
JAVA编译器,适合新手,更时候老手
首先声明,编译器不是我写的,但我写了这个编译环境简化了编译流程。学了这么久的JAVA,感觉最棘手的就是,好不容易写完了一篇JAVA程序,还要输入各种各样的文件路径、命令符、参数等等,才能调试,而且一旦JAVA程序错误要修改时还得重新输入一遍,很浪费时间。本程序使用的都是黑窗口模式,换了背景色,调用的都是原编译器在DOS模式下的javac和java程序。虽然比不上Eclipse的集成度,但个人测试了几十个JAVA程序,感觉很上手,所以奉献给大家,资源分不多,感谢大家支持!【另】原编译器可以到我的另一个资源里面资源分下载,这里上传文件大小有限。
基于UDP网络编程简单聊天窗口(客户端和服务端图形界面)适合新手当作业或学习
java UDP简单聊天窗口(客户端和服务端)适合新手学习,或者当作业,使用基于UDP的网络编程方法,完成客户端和服务器间的聊天功能。要求图形界面。
Java快速编译工具
Java快速编译工具,解救你于繁琐的命令行编译之中! 适用范围:快速编译较为简单的Java项目,目的在于将初学者从复杂的命令行编译中解放出来; 优点:本程序不需要用户手动敲击CMD命令,只需在图形界面上用鼠标点击即可方便地编译Java源程序,并可自定义class文件的存储位置。同时,在用户点击编译、运行等按钮时,会自动生成相应的CMD命令并通过对话框显示出来供用户确认,在方便用户编译的同时也可加深用户对编译具体操作的理解; 运行环境:本程序的原理为调用JDK和JRE,故需要用户自行安装Java集成开发环境(JDK)。同时,由于本程序用C++开发,虽然本程序内置了部分动态链接库,但在部分计算机中仍可能需要手动安装Microsoft Visual C++ 2015运行库。 使用方法详见:https://www.jianshu.com/p/adc367336a3a 程序安装完毕后,在安装目录下\demo\src文件夹中会有一个测试程序可以用来测试软件效果和学习软件使用方法。这个程序花了我好长时间才打成安装包,但是可能会有点问题,欢迎大家批评指正。 最后,也欢迎大家对本程序提出宝贵意见,支持本程序的更新。
好用的java反编译工具,图形界面
好用的java反编译工具。。图形界面,免安装绿色软件;只需将class文件拖入即可反编译。。 编译出来中文显示是unicode字符,我一般是通过在jsp页面写如<%="\u5BA2\u6237\u8D44\u6599\u67E5\u8BE2-->\u67E5\u8BE2"%>;然后通过IE访问来翻译。。。 如果希望翻遍出来之后直接能正常显示中文,还是推荐jad,通过cmd命令方式反编译。。 Jad –d c:\\javasource –s .java -8 javatest.class 这条指令将当前目录下的javatest.class反编译为javatest.java并保存在c:\\javasource目录里;并且中文显示 每种工具各有优缺点,需要jad的请在我上传的资源找……
Java新手练手的小项目
java新手练手的项目,很适合新手。


Java SE
