2016-07-14 3 views
0

누구나 JFace의 단일 행을 비활성화하는 방법을 알고 있습니까 TableViwer? 나는 다음과 같이 TableViwer가 건설 있습니다JFace TableViwer 단일 행 사용 안 함

TableViwer tv = new TableViwer(composite, SWT.NONE| SWT.FULL_SELECTION | SWT.BORDER); 

TV는 많은 행이있을 수 있지만, 동적으로 (외부 버튼을 클릭했을 때) 테이블에 특정 고유 행을 추가, 그리고 난 해당 행을 해제해야 (회색으로 표시되고 선택할 수 없음, 다른 옵션이없는 경우 기존 핸들러를 통해 선택할 수 없음).

Google에서 검색했지만 많은 정보를 얻지 못했습니다. 나는 SWT/JFace를 처음 사용하므로 어떤 도움을 주시면 감사하겠습니다.

답변

1

행 선택을 거부하려면 선택 수신기에서 처리해야합니다.

은 행 당신이 당신의 레이블 제공자 당신이 두 가지 방법을 정의 할 수 있습니다 IColorProvider을 구현 할 수 있습니다 회색 만들려면 : 행을 색상 수

public Color getForeground(Object element); 
public Color getBackground(Object element); 

합니다.

더 복잡한 색칠을 정의 할 수있는 StyledCellLabelProvider에서 파생 된 레이블 공급자를 사용할 수도 있습니다.

+0

안녕하세요 @ Greg ...... 도움을 주셔서 감사합니다. 행을 추가 할 때 배경색이 설정됩니다. 하지만 이제는 한 가지 더 많은 문제에 직면하고 있습니다. 실제로 사용자는 XML로 데이터를 저장할 수 있습니다. 따라서 테이블이 XML에서 처음으로 데이터를로드하면 배경색이 변경되지 않습니다. – user2018023

+0

새로운 질문입니다. 이 대답을 수락하고 문제 코드의 최소 버전을 보여주는 새로운 질문을하십시오. –

+0

도움을 주신 것에 감사드립니다. @ 그렉, 나는 귀하의 답변을 수락했습니다. – user2018023