"먹이감"을 감지하고 먹는 버그를 기반으로 그리드 스타일의 게임/시뮬레이션을 만들고 있습니다. 나는 gridPane (worldGrid
)을 사용하여 버그와 음식 표를 보여주고있다. 이것은 버그가 세포를 음식쪽으로 이동시킬 때 끊임없이 업데이트 될 것입니다.JavaFX GridPane에서 (행, 열) 노드를 바꿉니다
저는 [row, col]의 레이블을 cellContent에 새 텍스트가있는 레이블로 바꾸려는 기능이 updateGrid(int col, int row, String cellContent)
입니다. .
나는
worldGrid.add(new Label(cellContent), row,col);
그러나 그건 그냥 현재 레이블의 상단에 라벨을 추가하고 시뮬레이션 분명 100 개 이상의 반복이 적합하지 이잖아 걱정 메신저 작동 후속 있습니다.
나는 레이블을 추가하기 전에이 작업을 시도하십시오 add
라인을하려고 할 때
worldGrid.getChildren().remove(row,col);
그러나 나는 다음
IllegalArgumentException
를 얻을.
방법에 대한 아이디어가 있으십니까? 아니면 텍스트 대신 스프라이트를 사용하게 될 끊임없이 변화하는 그리드를 가장 효과적으로 보여주는 방법에 대한 아이디어는 더 좋을까요?
물론 remove (object)를 사용하면 자식 목록 전체에서 개체를 선형 검색해야하므로 거대한 그리드에서는 효율성이 떨어질 수 있습니다. (게임에 자유롭고 빠른 업데이트가 필요한 경우) –
그리드에 둘 이상의 열이 있다면 (반드시 수행해야 함) 전체 행을 제거하고 새 노드로 다시 추가하고 동일하게 유지해야합니다. –
Joe Almore는 절대 사실이 아닙니다. 예제와 같이 단일 노드를 제거한 다음 다른 노드를 추가 할 수 있습니다. – Xerus