admin管理员组文章数量:1794759
Exception in thread “AWT
昨天刚考完试,没想到考的刚好是我考前做的一道题,也刚好那时还遗留了一个错误,结果我照着我做过的做完之后,就剩下那个报错了,搞了大概40分钟之后,还是没有做出来,最后,在我们班学委的帮助下,总算是解决了,希望能对大家有帮助,报错如下:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException: Cannot invoke “javax.swing.JComboBox.getSelectedItem()” because “this.bookType” is null at View.ShowFrame.AddBook(ShowFrame.java:184) at View.ShowFrame 2. a c t i o n P e r f o r m e d ( S h o w F r a m e . j a v a : 128 ) a t j a v a . d e s k t o p / j a v a x . s w i n g . A b s t r a c t B u t t o n . f i r e A c t i o n P e r f o r m e d ( A b s t r a c t B u t t o n . j a v a : 1967 ) a t j a v a . d e s k t o p / j a v a x . s w i n g . A b s t r a c t B u t t o n 2.actionPerformed(ShowFrame.java:128) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton 2.actionPerformed(ShowFrame.java:128)atjava.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)atjava.desktop/javax.swing.AbstractButtonHandler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6614) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6379) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2769) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue 4. r u n ( E v e n t Q u e u e . j a v a : 715 ) a t j a v a . b a s e / j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( A c c e s s C o n t r o l l e r . j a v a : 391 ) a t j a v a . b a s e / j a v a . s e c u r i t y . P r o t e c t i o n D o m a i n 4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain 4.run(EventQueue.java:715)atjava.base/java.security.AccessController.doPrivileged(AccessController.java:391)atjava.base/java.security.ProtectionDomainJavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue 5. r u n ( E v e n t Q u e u e . j a v a : 743 ) a t j a v a . b a s e / j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( A c c e s s C o n t r o l l e r . j a v a : 391 ) a t j a v a . b a s e / j a v a . s e c u r i t y . P r o t e c t i o n D o m a i n 5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain 5.run(EventQueue.java:743)atjava.base/java.security.AccessController.doPrivileged(AccessController.java:391)atjava.base/java.security.ProtectionDomainJavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
接下来呈上我敲的代码:
package Model;
public class Books { private int bookId; private String bookName; private String bookAuthor; private String bookPublish; private double bookPrice; private String bookType; public int getBookId() { return bookId; } public void setBookId(int bookId) { this.bookId = bookId; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getBookAuthor() { return bookAuthor; } public void setBookAuthor(String bookAuthor) { this.bookAuthor = bookAuthor; } public String getBookPublish() { return bookPublish; } public void setBookPublish(String bookPublish) { this.bookPublish = bookPublish; } public double getBookPrice() { return bookPrice; } public void setBookPrice(double bookPrice) { this.bookPrice = bookPrice; } public String getBookType() { return bookType; } public void setBookType(String bookType) { this.bookType = bookType; }
}
package Util;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;
public class BUtil { private static final String DRIVER = “com.mysql.jdbc.Driver”; private static final String URL = “jdbc:mysql://localhost:3306/library_dbuseUnicode=true&characterEncoding=UTF-8”; private static final String USER = “root”; private static final String PWD = “666918”;
static { try { Class.forName(DRIVER); } catch (ClassNotFoundException var1) { var1.printStackTrace(); }
}
public static Connection getConnection() throws Exception { return DriverManager.getConnection(URL, USER, PWD); }
public static void close(ResultSet rs, PreparedStatement prep, Connection conn) throws Exception { if (rs != null) { rs.close(); }
if (prep != null) { prep.close(); }
if (conn != null) { conn.close(); }
} }
package Dao;
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList;
import Model.Books; import Util.BUtil;
public class BaseDao { public ArrayList getBooks() { ArrayList books=new ArrayList(); ResultSet rs=null; PreparedStatement prep=null; Connection conn=null; try { conn=BUtil.getConnection(); String sql=“select * from tb_book”; prep=conn.prepareStatement(sql); rs=prep.executeQuery(); while (rs.next()) { Books book=new Books(); book.setBookId(rs.getInt(“bookId”)); book.setBookName(rs.getString(“bookName”)); book.setBookAuthor(rs.getString(“bookAuthor”)); book.setBookPublish(rs.getString(“bookPublish”)); book.setBookPrice(rs.getDouble(“bookPrice”)); book.setBookType(rs.getString(“bookType”)); books.add(book); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { BUtil.close(rs, prep, conn); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return books; }
public int addBook(Books books) { int result=0; PreparedStatement prep=null; Connection conn=null; try { conn=BUtil.getConnection(); String sql=“insert into tb_book(bookName,bookAuthor,bookPublish,bookPrice,bookType) values (,)”; prep=conn.prepareStatement(sql); prep.setString(1, books.getBookName()); prep.setString(2, books.getBookAuthor()); prep.setString(3, books.getBookPublish()); prep.setDouble(4, books.getBookPrice()); prep.setString(5, books.getBookType()); result=prep.executeUpdate(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { BUtil.close(null, prep, conn); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return result;
}
public int delBook(int bookId) { int result=0; PreparedStatement prep=null; Connection conn=null; try { conn=BUtil.getConnection(); String sql=“delete from tb_book where bookId=”; prep=conn.prepareStatement(sql); prep.setInt(1, bookId); result=prep.executeUpdate(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { BUtil.close(null, prep, conn); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return result; } }
package View;
import java.awt.BorderLayout;
import java.awt.EventQueue; import java.util.ArrayList; import java.util.Vector;
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.JComboBox; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel;
import Dao.BaseDao; import Model.Books;
import javax.swing.JButton; import javax.swing.DefaultComboBoxModel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent;
public class ShowFrame extends JFrame { public DefaultTableModel dtm; private JPanel contentPane; private JTextField bookName; private JTextField bookAuthor; private JTextField bookPublish; private JTextField bookPrice; private JComboBox bookType; private JTable table;
/** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { ShowFrame frame = new ShowFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }
/** * Create the frame. */ public ShowFrame() { setTitle(“图书信管理系统”); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 621, 313); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel(“图书名称:”); lblNewLabel.setBounds(23, 10, 89, 22); contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel(“作者:”); lblNewLabel_1.setBounds(23, 40, 89, 22); contentPane.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel(“出版社:”); lblNewLabel_2.setBounds(23, 70, 89, 22); contentPane.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel(“价格:”); lblNewLabel_3.setBounds(23, 102, 89, 22); contentPane.add(lblNewLabel_3);
JLabel lblNewLabel_4 = new JLabel(“图书类型:”); lblNewLabel_4.setBounds(23, 138, 89, 22); contentPane.add(lblNewLabel_4);
bookName = new JTextField(); bookName.setBounds(122, 11, 190, 22); contentPane.add(bookName); bookName.setColumns(10);
bookAuthor = new JTextField(); bookAuthor.setBounds(122, 41, 190, 22); contentPane.add(bookAuthor); bookAuthor.setColumns(10);
bookPublish = new JTextField(); bookPublish.setBounds(122, 71, 190, 22); contentPane.add(bookPublish); bookPublish.setColumns(10);
bookPrice = new JTextField(); bookPrice.setBounds(122, 103, 190, 22); contentPane.add(bookPrice); bookPrice.setColumns(10);
JComboBox bookType = new JComboBox(); bookType.setModel(new DefaultComboBoxModel(new String[] {“小说”, “玄幻”, “文学”, “历史”, “经济”})); bookType.setBounds(122, 138, 190, 22); contentPane.add(bookType);
JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(322, 10, 285, 180); contentPane.add(scrollPane);
table = new JTable(); table.setModel(new DefaultTableModel( new Object[][] { }, new String[] { “编号”, “名称”, “作者”, “出版社”, “价格”, “类型” } )); scrollPane.setViewportView(table);
JButton btnNewButton = new JButton(“添加”); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { AddBook(e); } }); btnNewButton.setBounds(48, 209, 97, 23); contentPane.add(btnNewButton);
JButton btnNewButton_1 = new JButton(“清空”); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Clear(); } }); btnNewButton_1.setBounds(192, 209, 97, 23); contentPane.add(btnNewButton_1);
JButton btnNewButton_2 = new JButton(“删除”); btnNewButton_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DelBook(e); } }); btnNewButton_2.setBounds(480, 209, 97, 23); contentPane.add(btnNewButton_2); dtm=(DefaultTableModel)table.getModel(); search(); }
protected void DelBook(ActionEvent e) { // TODO Auto-generated method stub int num=JOptionPane.showConfirmDialog(null, “确定删除吗”); if (num==0) { int bookId=(int)(dtm.getValueAt(this.table.getSelectedRow(), 0)); BaseDao bd=new BaseDao(); int result=bd.delBook(bookId); if (result>0) { JOptionPane.showMessageDialog(null, “删除成功”); search(); } }
}
protected void Clear() { // TODO Auto-generated method stub this.bookName.setText(“”); this.bookAuthor.setText(“”); this.bookPublish.setText(“”); this.bookPrice.setText(“”); }
protected void AddBook(ActionEvent e) { // TODO Auto-generated method stub String bookName=this.bookName.getText(); String bookAuthor=this.bookAuthor.getText(); String bookPublish=this.bookPublish.getText(); double bookPrice=Double.parseDouble(this.bookPrice.getText()); String bookType=this.bookType.getSelectedItem().toString();
Books books=new Books(); books.setBookName(bookName); books.setBookAuthor(bookAuthor); books.setBookPublish(bookPublish); books.setBookPrice(bookPrice); books.setBookType(bookType);
BaseDao bd=new BaseDao(); int result=bd.addBook(books); if (result>0) { JOptionPane.showMessageDialog(null, “添加图书信成功!”); } else { JOptionPane.showMessageDialog(null, “填写信不完整,请认真检查!”); } }
public void search() { dtm.setRowCount(0); BaseDao bd=new BaseDao(); ArrayList books=bd.getBooks(); for (Books book : books) { Vector v=new Vector(); v.add(book.getBookId()); v.add(book.getBookName()); v.add(book.getBookAuthor()); v.add(book.getBookPublish()); v.add(book.getBookPrice()); v.add(book.getBookType()); dtm.addRow(v); } } }
最后把里的JComboBox删掉之后,就信添加成功了,究其原因,可能是前面已经定义了属性,后面实例化没有赋值,所以就报了空指针异常。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
版权声明:本文标题:Exception in thread “AWT 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686790858a103343.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论