저는 현재 체커 타입의 게임을 만들고 있습니다. 타일을 클릭 할 때마다 타일을 위, 아래 등으로 움직일 수 있습니다. 조각을 클릭 한 다음 타일을 클릭하면 어떻게 될까요? 그것을 작동하게합니다. "gp.add (C, 행 안부);"여기검사기 조각이 JavaFX에서 원하는 타일로 이동 했습니까?
조각에 대한 이벤트 핸들러와 보드
class CircleEventHandler implements EventHandler<MouseEvent>{
int Crow;
int Ccol;
@Override
public void handle(MouseEvent event) {
System.out.println("Mouse Clicked");
Circle c = (Circle)event.getSource();
Crow = gp.getRowIndex(c);
Ccol = gp.getColumnIndex(c);
System.out.println("row is " + Crow + " & col is " + Ccol);
gp.getChildren().remove(c);
}
}
class RectangleEventHandler implements EventHandler<MouseEvent>{
@Override
public void handle(MouseEvent event) {
Rectangle r = (Rectangle)event.getSource();
int row = gp.getRowIndex(r);
int col = gp.getColumnIndex(r);
System.out.println("row is " + row + " & col is " + col);
gp.add(c, row, col);
}
}
나에게 널 포인터 예외를 얻고 나를 가리 킵니다이 코드를 실행은 사각형 이벤트 핸들러에서. 나는이 일을하는 법을 누군가가 올바른 방향으로 나를 가리킬 수 있을지 모르겠다.
gp.getChildren()'.add ('c' .... 참고 : 'c'는 두 번째 이벤트에서 정의되지 않았습니다. IDE가이 항목을 가리키고 있지 않습니까? – brian
그렇지 않습니다. 안타깝게도 CircleEventHandler에서 CircleEventHandler가 어떻게 보이는지 모르겠다. – krambo
이것은 정적 멤버를 역 참조하기 위해 변수를 사용하지 않아야하는 좋은 예이다 .gp.getColumnIndex (r)'make 'gp.add' 전에는'gp'가 역 참조되었다고 생각 합니다만,이 메도 드는 정적이기 때문에 그렇지 않습니다.'gp.add' 행이 "근본 원인"의 스택 트레이스에서 최상위 요소라면, 유일한 가능성은'gp'가'null'입니다. – fabian