代码有点问题

package 图书借阅管理系统;

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import java.sql.*;
  5. public class BookDelete extends JFrame implements ActionListener {
  6. private static final long serialVersionUID = 1L;
  7. DataBaseManager db = new DataBaseManager();
  8. ResultSet rs;
  9. Container c;
  10. JLabel TipLabel = new JLabel("请输入要删除的书名:", JLabel.CENTER);
  11. JTextField bookDeleteTextField = new JTextField(40);
  12. JButton yesBtn, exitBtn;
  13. JPanel panel1 = new JPanel();
  14. public BookDelete() {
  15. super("删除书籍信息");
  16. c = getContentPane();
  17. c.setLayout(new BorderLayout());
  18. c.add(TipLabel, BorderLayout.NORTH);
  19. c.add(bookDeleteTextField, BorderLayout.CENTER);
  20. yesBtn = new JButton("确定");
  21. exitBtn = new JButton("退出");
  22. yesBtn.addActionListener(this);
  23. exitBtn.addActionListener(this);
  24. panel1.add(yesBtn);
  25. panel1.add(exitBtn);
  26. c.add(panel1, BorderLayout.SOUTH);
  27. }
  28. public void actionPerformed(ActionEvent e) {
  29. if (e.getSource() == exitBtn) {
  30. this.dispose();
  31. } else if (e.getSource() == yesBtn) {
  32. try {
  33. String strSQL = "select borrowed_count from books where bookName ='"
  34. + bookDeleteTextField.getText().trim() + "'";
  35. rs = db.getResult(strSQL);
  36. if (!rs.first()) {
  37. JOptionPane.showMessageDialog(null, "书库里没有你要删除的书!");
  38. } else {
  39. String strSql = "delete from books where bookName ='" + bookDeleteTextField.getText().trim()
  40. + "'and borrowed_count=0";
  41. rs.first();
  42. int count = rs.getInt(1);
  43. if (!(count == 0)) {
  44. JOptionPane.showMessageDialog(null, "此书还有学生没有还!\n现在还不能从书库中删除。。。");
  45. this.dispose();
  46. }
  47. JOptionPane.showMessageDialog(null, "删除成功!");
  48. db.closeConnection();
  49. this.dispose();
  50. }
  51. } catch (SQLException sqle) {
  52. System.out.println(sqle.toString());
  53. } catch (Exception ex) {
  54. System.out.println(ex.toString());
  55. }
  56. }
  57. }
  58. }

最后运行的时候 会报空指针错误

上传的附件
你的回答被采纳后将获得: 15点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 邱丑丑帅不帅 你购买"WRITE-BUG技术共享平台"推出的永久VIP了吗 : 下一篇keyboard_arrow_right

3个回答

Schoolleave
2020-06-01 22:01:42

你要问问题,起码也给下出错信息和出错行数吧?要不这么多代码,你让大佬们怎么看啊~ 大佬们的时间可是很宝贵的!
根据你提供的”报空指针错误“错误描述,我只能推测某行代码可能是指针没有申请内存,指向了空地址,导致的报错!

xiaoya
2020-06-02 09:50:43

可以检查下代码,是不是指针没有new,就被直接调用了

xiaoya
2020-06-02 11:06:17

这样吧,你下个断点,单步调试,一步一步往下走,看看是在哪一行代码开始报错的,这样就定位到出错代码行数了,然后在结合上下文代码分析。要不然这样子直接用肉眼扫描代码,这个不是正确的调bug思路

精彩评论

  • 说说最近的感想吧(最佳答案不止一个)
    最近一直在学JAVA,有不懂的可以交流
    2020-06-28 23:56:25 thumb_up( 1 )
  • 用c对无向图领接表的存盘,读盘并输出邻接表
    这是数据结构中图的知识点吧,一言难尽啊!自己也忘得差不多了,定义出无向图的数据结构(点数、边数、点和边),用链表结构来存储邻接表?最后实现图的遍历。。
    2020-06-30 12:56:29 thumb_up( 2 )
  • 想学游戏开发,应该直接学习游戏引擎还是从游戏引擎原理学起呢?
    从事3年的游戏客户端开发,我的建议是直接学习现成的游戏引擎。理由1、容易出作品能增加自己的积极性2、方便之后出来找工作3、并不会妨碍到自己学习游戏原理,问题是你是否多思考,(当你使用引擎的某个功能并带有好奇的时候,你会发现网上很多人都有相同的疑问,很多大神都会贴出自己完整的思路)4、可能做游戏会和你想象中的不太一样,直接上手用引擎就是在做游戏,如果发现不合适,也可以尽早退出
    2019-03-24 18:12:39 thumb_up( 4 )
  • 可以问一下站内那个基于Java的办公自动化系统怎么导入与运行吗
    你是用什么软件开发Java程序?我学生用的是eclipse软件如果你是用eclipse的话:1.file中找到import(鼠标右键也可以找到)2.点击Existing Project into Workspace3.在select root directory右边点击Browse4.查找需要导入的工程文件就行了
    2020-03-09 13:30:36 thumb_up( 3 )
  • [算法问题] 谁逃课了
    哈哈,一开始还以为是吐槽帖,没想是问问题啊。。。顺便解答下你的问题吧。 bA, bB, bC, bD, bE 来表示A、B、C、D、E,true表示逃课,false表示不逃课,原理比较简单,就是暴力枚举 bA, bB, bC, bD, bE,然后判断是否满足给出的 5 个条件,代码如下所示: bool judge(bool bA, bool bB, bool bC, bool bD, bool bE){ bool bRet = false; do { // (1)如果A逃课,B也一定逃课 if (true == bA) { if (true == bB) { // 条件(1)成立 } else { // 条件(1)不成立 break; } } // (2)B和C中有且只有一个人参与逃课 if (true == (bB || bC) && false == (bB && bC)) { // 条件(2)成立 } else { // 条件(2)不成立 break; } // (3)C和D要么都逃,要么都不逃 if (true == bC) { if (true == bD) { // 条件(3)成立 } else { // 条件(3)不成立 break; } } else { if (false == bD) { // 条件(3)成立 } else { // 条件(3)不成立 break; } } // (4)D和E至少有一个人逃了 if (true == (bD || bE)) { // 条件(4)成立 } else { // 条件(4)不成立 break; } // (5)如果E逃课,则A和D一定参与逃课 if (true == bE) { if ((true == bA) && (true == bD)) { // 条件(5)成立 } else { // 条件(5)不成立 break; } } // 所有条件都满足 bRet = true; } while (false); return bRet;}int _tmain(int argc, _TCHAR* argv[]){ int a = 0, b = 0, c = 0, d = 0, e = 0; bool bA = false, bB = false, bC = false, bD = false, bE = false; for (a = 0; a < 2; a++) { for (b = 0; b < 2; b++) { for (c = 0; c < 2; c++) { for (d = 0; d < 2; d++) { for (e = 0; e < 2; e++) { bA = (bool)a; bB = (bool)b; bC = (bool)c; bD = (bool)d; bE = (bool)e; // 判断 if (true == judge(bA, bB, bC, bD, bE)) { if (true == bA) { printf("A"); } if (true == bB) { printf("B"); } if (true == bC) { printf("C"); } if (true == bD) { printf("D"); } if (true == bE) { printf("E"); } printf("\n"); } } } } } } return 0;} 运行程序,结果显示:CD,则表示C和D逃课满足上述5个条件~~~
    2020-07-12 12:15:34 thumb_up( 1 )
  • 你购买"WRITE-BUG技术共享平台"推出的永久VIP了吗
    买了,支持大大,并且,100块100年,一年才1块钱,就相当于不要钱呀!!!
    2018-11-12 13:31:28 thumb_up( 7 )
eject