Table.getItem (Point)이 항상 0 열에서 항목을 반환하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/362336

  •  21-08-2019
  •  | 
  •  

문제

나는 org.eclipse.swt.widgets.table 클래스에 대해 더 유연한 tooptip을 제공하기 위해 클래스를 구현했습니다. 모두 알고 있듯이 기본적으로 전체 테이블에 대한 하나의 툴팁을 얻습니다. 각 셀에 대한 개별 팁이 아닙니다.

내 객체는 자체 위치에 민감한 툴팁을 구현하기 위해 많은 리스너를 만듭니다. 올바른 행.

문제의 테이블은이 약화와 함께 테이블 뷰어에 의해 만들어졌습니다 ...

viewer = new TableViewer( parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION );

내가 어디로 잘못 가고 있습니까?

도움이 되었습니까?

해결책

답은 결국 TableItem은 행 내의 셀이 아니라 행을 나타내는 것입니다. 이 작은 방법은 당신을 위해 열 번호를 가져올 것입니다 ...

/**
 * Get the column from the given TableItem and Point objects 
 * @param pt
 * @param item
 * @return -1 if no column is found
 */
public static int getColumn( Point pt, TableItem item )
{
    int columns = item.getParent().getColumnCount();
    for (int i=0; i<columns; i++)
    {
        Rectangle rect = item.getBounds (i);
        if ( pt.x >= rect.x && pt.x < rect.x + rect.width ) return i;
    }
    return -1;
}

NB : 사각형. intersects (point)는 테이블 가장자리 위로 정확하게 호버링하면 실패 할 수 있으므로 대신 간단한 X 비교를 사용했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top