2014-07-16 7 views
0

저는 하나의 GWT 그리드에서 작업하고 있습니다. 캔버스처럼 this in the fiddle하나의 GWT 그리드 캔버스에서 어떤 라인을 선택했는지 확인하는 방법은 무엇입니까?

gridCanvas 오브젝트에 가로선이 표시됩니다. 또한 객체에는 단면을 나타내는 수직선이 있습니다.

예를 들어 사용자가 경로 또는 섹션을 선택하고 어떤 경로 또는 섹션을 선택했는지와 같은 사용자의 선택을 어떻게 얻을 수 있는지 알고 싶습니다.

여기에 a 케이스 screenshot입니다.

답변

0

듣고 자하는 이벤트를 gridCanvas.addClickHandler(ClickHandler)처럼 추가하고 ClickEvent을 사용하여 마우스 위치를 가져오고 사용자가 클릭 한 셀을 계산하십시오.

gridCanvas.addClickHandler(new ClickHandler() { 
    @Override 
    public void onClick(ClickEvent event) { 
     int row = event.getY()/getCellHeight(); 
     int col = event.getX()/getCellWidth(); 
    } 
}); 

getX()getY(), 당신은 마우스의 위치를 ​​얻을 수 있습니다. 그리드를 구성 했으므로 셀의 너비와 높이도 가져야합니다. 이 정보를 사용하면 행 및/또는 열을 쉽게 얻을 수 있습니다.

전체 샘플을 작성하여 here을 찾을 수 있습니다.

샘플은 here으로 배포됩니다.

+0

아주 좋은 예입니다. 내 경우에는 내가 세포가 아닌 라인을 선택해야합니다. 하나의 스크린 샷으로 질문을 구체화했습니다. – user3410517

+0

격자를 구성 할 때 수평선과 수직선에 대해 맵을 생성 할 수 있습니다. 키는 x/y 위치, 값 또는 인덱스 또는 행을 나타내는 모든 객체입니다. 그리고 나서'event.getX()'와'event.getY()'를 사용하여 라인을 찾습니다. –

+0

라인이 1px보다 크거나 위의 1px를 클릭하더라도 사용자가 라인을 선택하게하려면, 좀 더 복잡한 접근법이 필요합니다. 마치지도와 비슷하지만 키가 범위이고 평등이 교차를 기반으로하는 곳입니다. –