![](/img/trans.png)
[英]Java: Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
[英]ERROR : Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
我遇到了null的问题,我之前实现了相同的代码,因此效果很好,但是在添加其他代码后,效果不佳..
这是错误的一部分:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at manager.flyer$13.mouseClicked(flyer.java:751)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6536)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
和我的代码部分显示该错误:
JButton btnNewButton_4 = new JButton("Add All");
btnNewButton_4.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int columnContainingPlanets =1 ;
for (int index =0 ; index < tableModel.getRowCount(); index ++){
if (tableModel.getValueAt(index, columnContainingPlanets).equals("")) {
JOptionPane.showMessageDialog(panel_4, "Please Enter Discount Amount For All Items");
return; }}
我尝试将columnContainingPlanets=1
替换为columnContainingPlanets=0
但是也出现错误: java.lang.NullPointerException
如果有人知道解决方案,我将很高兴,因为该错误突然出现了,并且效果很好。
我们无法为您调试NullPointerException。 您是唯一有权访问您的代码和应用程序中的数据的人。 因此,您是唯一可以解决问题的人。
一些有助于调试的指针:
为什么要创建一个变量(columnContainingPlanets)用作getValueAt(...)方法中的索引。 不会造成问题,但似乎没有必要。
不要在同一行代码中编写多个语句。 这使得确定哪个变量为null变得更加困难。 在您的情况下,我可以看到“ tableModel”可以为null,或者从TableModel返回的值可以为null。 除非您知道哪个值为空,否则您将无法解决问题。
您不能在if语句中测试字符串“”。 getValueAt()方法返回一个Object。 对象不是字符串。
因此,您可以重组代码,如下所示:
for (int index =0 ; index < tableModel.getRowCount(); index ++)
{
Object value = tableModel.getValueAt(index, 1);
if (value.toString().equals(""))
{
JOptionPane.showMessageDialog(panel_4, "Please Enter Discount Amount For All Items");
return;
}
}
现在,在NullPointerException中给出的行号将告诉您确切哪个变量为null。 要么:
“ tableModel”为null(导致您在引用表格模型时遇到问题,或者
“值”为null(在这种情况下,表模型中包含的数据有问题。
最后,不要在JButton
上使用MouseListener
。 相反,您应该将ActionListener
添加到JButton
。 阅读Swing教程中有关如何使用按钮的部分 。 下载演示代码并使用示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.