java图形界面+数据库~程序运行有误

问题描述

importjava.net.*;importjava.sql.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.util.*;importjavax.swing.*;classUpdateextendsJFrameimplementsActionListener{JFramef;Containercp;JPaneljp1,jp2,jp3,jp4,jp,jpanelWest;JButtonjbt1,jbt2;//按钮,确定、取消JLabellabel;//标签:修改密码JTextFieldtf0,tf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8,tf9,tf10;Stringsno;Update(){}Update(Stringbookno){sno=bookno;f=newJFrame();cp=f.getContentPane();//初始化jp1=newJPanel();jp2=newJPanel();jp3=newJPanel();jp4=newJPanel();jpanelWest=newJPanel();jp=newJPanel();jbt1=newJButton("确定");jbt2=newJButton("取消");intsize=20;label=newJLabel("修改图书信息",SwingConstants.CENTER);label.setFont(newFont("修改图书信息",Font.PLAIN,size));//加粗,字体大小20label.setForeground(Color.blue);tf1=newJTextField(20);tf2=newJTextField(20);tf3=newJTextField(20);tf4=newJTextField(20);tf5=newJTextField(20);tf6=newJTextField(20);tf7=newJTextField(20);tf8=newJTextField(20);tf9=newJTextField(20);tf10=newJTextField(20);//布局,添加控件jp1.add(jbt1);jp1.add(jbt2);jp1.add(newJLabel("欢迎登陆"));JPaneljpanel=newJPanel();jpanel.add(label);JPanelpp4=newJPanel();JPaneljpane4=newJPanel();cp.add(jpanel,"North");JPanelpp2=newJPanel(newGridLayout(6,1));pp4.setLayout(newGridLayout(6,1));pp4.add(newJLabel("输入要修改的图书号:",SwingConstants.RIGHT));pp2.add(tf0);pp4.add(newJLabel("原书名:",SwingConstants.RIGHT));pp2.add(tf1);pp4.add(newJLabel("现书名:",SwingConstants.RIGHT));pp2.add(tf2);pp4.add(newJLabel("原单价:",SwingConstants.RIGHT));pp2.add(tf3);pp4.add(newJLabel("现单价:",SwingConstants.RIGHT));pp2.add(tf4);pp4.add(newJLabel("原作者:",SwingConstants.RIGHT));pp2.add(tf5);pp4.add(newJLabel("现作者:",SwingConstants.RIGHT));pp2.add(tf6);pp4.add(newJLabel("原出版社:",SwingConstants.RIGHT));pp2.add(tf7);pp4.add(newJLabel("现出版社:",SwingConstants.RIGHT));pp2.add(tf8);pp4.add(newJLabel("原入库时间:",SwingConstants.RIGHT));pp2.add(tf9);pp4.add(newJLabel("现入库时间:",SwingConstants.RIGHT));pp2.add(tf10);pp2.add(newJLabel());JPaneljpbutton=newJPanel();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);}publicvoidupdateM(){try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!");}try{//直接使用当前类目录下的数据库文件Connectioncon=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Book","sa","xuqianqian");Statementsql=con.createStatement();Stringutf0=tf0.getText().trim();StringqueryMima="select*frombookwhere图书号='"+utf0+"'";ResultSetrs=sql.executeQuery(queryMima);if(rs.next()){Stringnewname=tf2.getText().trim();Stringnewcost=tf4.getText().trim();Stringnewauthor=tf6.getText().trim();Stringnewchuban=tf8.getText().trim();Stringnewruku=tf10.getText().trim();Strings="updatebookset图书名='"+newname+"',作者='"+newauthor+"',单价='"+newcost+"',出版社='"+newchuban+"',入库时间='"+newruku+"'where图书号='"+utf0+"'";sql=con.createStatement();intupdate=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(SQLExceptiong){System.out.println("ECode"+g.getErrorCode());System.out.println("EM"+g.getMessage());}}publicvoidactionPerformed(ActionEvente){Stringcmd=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;}}elseif(cmd.equals("取消"))f.hide();}publicstaticvoidmain(String[]args){newUpdate("");}}报错:Exceptioninthread"main"java.lang.NullPointerExceptionatjava.awt.Container.addImpl(Container.java:1045)atjava.awt.Container.add(Container.java:365)atUpdate.<init>(Update.java:57)atUpdate.main(Update.java:157)请问哪里有问题~~

解决方案

解决方案二:
java.lang.NullPointerException这是个常见异常,空指针异常,就是明明某值为空,你还调用传入了某个方法。调试方法:1.debug,跟踪调试2.System.out.println();把相关的值打印出来观察

时间: 2024-10-22 15:49:25

java图形界面+数据库~程序运行有误的相关文章

求java图形界面开发

问题描述 哪位大神告诉我怎样开发java图形界面的程序谢谢!!! 解决方案 解决方案二:你可以看一些相关内容,很多的解决方案三:看java的经典图形库awt和swing解决方案四:告诉你个Swing开发的好网站.http://www.java2s.com/CN/Code/Java/2D-Graphics-GUI/Transform.htm再告诉你个用swing做的3D程序,有源码的哦.....笑去吧.....http://www.sweethome3d.com做java开发,多逛开源网站,不管是

怎样让Java图形界面程序启动时没有控制台窗口?

程序|控制|图形 缺水的海豚 写了一篇文章介绍 如何在C/C++中调用Java的方法 . 写得相当好,谢谢! 文章中提到, Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少.怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢? 有一个秘密(JDK文档中没提到),可以简单地解决这个问题.如果想运行Java图形界面程序,也用不着费劲写一个这样

【请教各位朋友、高手、版主】java 图形界面 多线程 运行的原理和本质

问题描述 小弟水平有限,对java图形界面编程一直有比较模糊的困惑感.虽然查阅了一些资料,但是往往是对技术的平白直述,还是无法找到解决困惑的方法,所以请教各位朋友.请详细讲解一下java图形界面程序运行的原理和本质.比如在java内部,一个图形界面程序,是如何开始初始化,最好能具体到几个关键类,它们都完成什么工作.这期间多线程又是如何开展的,有哪些关键性的线程,承担哪些重要作用.要是有些对本质的深入浅出的讲解,那就更好了非常感谢,小弟请教了 解决方案 解决方案二:帮你顶下!看楼下解答......

Java图形界面程序编辑

问题描述 编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有改字符删除,打印输出新生成的结果字符串. 解决方案 import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Collection

Java图形界面开发之简易记事本_java

在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*

JAVA图形界面(GUI)之容器

在Swing中,容器可以用来组织界面布局,容器中可以添加容器和组件.常用的有如下几种: 顶层容器:JFrame,JApplet,JDialog,JWindow 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar 特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane. 这篇博客将抽取其中几个常用容器为大家介绍,剩余的在之后用到了再介绍. JFrame JFrame是是个顶层容器,是屏幕上window

递归-java代码放到安卓里运行有误!

问题描述 java代码放到安卓里运行有误! 一个处理字符串的java类改装后放到安卓里使用,安卓程序秒退! 此java代码涉及递归调用.静态变量! 求大神解释为什么? 解决方案 断点监听一下就可以啊,你这不上代码怎么看 解决方案二: debug一下....... 解决方案三: 能把代码贴出来看看么 解决方案四: 估计是引用的包有冲突 解决方案五: 运行文件名对了吗??? 解决方案六: 具体原因要看代码,发一下代码 解决方案七: 我一般的迁移代码是先方法测试,再单元测试,在联合集成,容易定位问题.

java 图形界面一个窗口切换到另一窗口的时候,窗口的背景图不见了,何解呢?

问题描述 java图形界面一个窗口切换到另一窗口的时候,窗口的背景图不见了,何解呢?每个窗口单独运行的时候是没有问题的,一通过其他窗口开启显示就有问题.我插入背景的方法是:ImageIconimg1=newImageIcon(MusicShareClient.class.getResource("Image/Login.jpg"));JLabelbg=newJLabel(img1);inst.setLayout(null);inst.getLayeredPane().add(bg,-3

java图形界面之布局设计_java

在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: •FlowLayout,依次放置组件. •BoarderLayout,将组件放置在边界上. •CardLayout,将组件像扑克牌一样叠放,而每次只能显示其中一个组件. •GridLayout,将显示区域按行.列划分成一个个相等的格子,组件依次放入这些格子中. •GridBagLayout,将显示区域划分成许多矩形小单元