Java 在MouseClicked中使用for-each循环以获取每个对象的getX和getY
我是一个相对缺乏经验的程序员,在Java中开发国际象棋游戏时遇到了一个问题。我创建了一个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
处理程序类
,它在链接列表
中保存各个片段。现在,我希望加入使用鼠标选择各个工件的功能,并更改它们各自的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;
}
}