Java 在MouseClicked中使用for-each循环以获取每个对象的getX和getY

Java 在MouseClicked中使用for-each循环以获取每个对象的getX和getY,java,nullpointerexception,chess,Java,Nullpointerexception,Chess,我是一个相对缺乏经验的程序员,在Java中开发国际象棋游戏时遇到了一个问题。我创建了一个处理程序类,它在链接列表中保存各个片段。现在,我希望加入使用鼠标选择各个工件的功能,并更改它们各自的x坐标和y坐标,这是移动它们所必需的 在我的MouseClicked()方法中,我对链接列表中的每个片段对象的每个循环执行,并检查它们各自的坐标。当循环执行时,问题出现在此处,出现以下异常: "Exception in thread "AWT-EventQueue-0" java.lang.NullPointe

我是一个相对缺乏经验的程序员,在Java中开发国际象棋游戏时遇到了一个问题。我创建了一个
处理程序类
,它在
链接列表
中保存各个片段。现在,我希望加入使用鼠标选择各个工件的功能,并更改它们各自的x坐标和y坐标,这是移动它们所必需的

在我的
MouseClicked()
方法中,我对
链接列表中的每个
片段
对象的每个
循环执行
,并检查它们各自的坐标。当循环执行时,问题出现在此处,出现以下异常:

"Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException." 
我如何解决这个问题

下面是我的MouseClicked()中的代码:

public void mouseClicked(MouseEvent e){
int x=e.getX();
int y=e.getY();
System.out.println(e.getX()+“”+e.getY());
如果(单击模式==0)
{
for(工件pi:handler.Piece)
{

如果(x>=pi.getX()&&x=pi.getY()&&y导致
NullPointerException
的最可能原因是
LinkedList
中的一个位置不包含实例化的片段。该片段或
处理程序
实例尚未实例化。请确保正在使用的每个对象都已构造。

导致
Null的最可能原因是PointerException
是指您的
链接列表中的一个位置不包含实例化的片段。或者您的
处理程序
实例尚未实例化。请确保您使用的每个对象都已构造。

您是否尝试调试代码以查看空值?(提示检查
处理程序
是否为null或其字段
片段
)我这样做并解决了问题,谢谢!您是否尝试调试代码以查看什么是null?(提示检查
处理程序
是否为null或其字段
片段
)我就这么做了,解决了这个问题,谢谢!我会检查它并返回给你。我必须使用与创建片段相同的处理程序对象。我会检查它并返回给你。我必须使用与创建片段相同的处理程序对象。
public void mouseClicked(MouseEvent e) {
    int x = e.getX();
    int y = e.getY();
    System.out.println(e.getX() + " " + e.getY());
    if(clickMode == 0)
    {
        for(Piece pi: handler.piece)
        {
            if(x >= pi.getX() && x <= pi.getX() + 75 && y >= pi.getY() && y <= pi.getY() + 75)
            {
                System.out.println("Piece Selected");
                pi.isSelected = true;
                clickMode = 1;
            }
        }
    }
    else
    {
        for(Piece pi: handler.piece)
        {
            if(pi.isSelected == true)
            {
                System.out.println("Piece Moved");
                pi.setX(x);
                pi.setY(y);

                pi.isSelected = false;
            }                               
        }
        clickMode = 0;
    }               
}