2012-09-25 2 views
0

SWT 테이블에 하이퍼 링크를 추가하려면 어떻게합니까?TableItem SWT로 하이퍼 링크 추가

일반 TableItem 개체가있는 테이블을 행으로 사용해야하지만 때로는 거기에 하이퍼 링크가 있어야 사용자가 클릭하여 응용 프로그램 수준에서 링크 된 페이지를 열 수 있습니다.

어떻게해야합니까?

+0

은 간단한'Table' 또는'TableViewer'를 사용하십니까 : 여기

은 예입니다? – Baz

+0

@Baz'Table',하지만'TableViewer'로 훨씬 쉬워 진다면 변경할 수있을 것 같아요. –

답변

0

는 레디의 답변을 sambi 할 수있는 대안으로 사용할 수있는 StyledCellLabelProvider 당신의 열의 (당신이 TableViewer로 전환하는 경우)와 링크를 나타 내기 위해 StyledString를 사용합니다. 물론 마우스 이벤트를 직접 처리해야합니다.

// Column for the link 
TableViewerColumn col2 = createTableViewerColumn("Link", 100, 1, viewer); 
col2.setLabelProvider(new StyledCellLabelProvider() { 
    @Override 
    public void update(ViewerCell cell) 
    { 
     Object element = cell.getElement(); 
     if(element instanceof Person) 
     { 
      Person person = (Person) cell.getElement(); 

      /* make text look like a link */ 
      StyledString text = new StyledString(); 
      StyleRange myStyledRange = new StyleRange(0, person.getLocation().length(), Display.getCurrent().getSystemColor(SWT.COLOR_BLUE), null); 
      myStyledRange.underline = true; 
      text.append(person.getLocation(), StyledString.DECORATIONS_STYLER); 
      cell.setText(text.toString()); 

      StyleRange[] range = { myStyledRange }; 
      cell.setStyleRanges(range); 

      super.update(cell); 
     } 
    } 
}); 
+0

테이블의 방향이 수직 인 경우 어떻게해야합니까? 행에 대해이 작업을 수행 할 수있는 방법이 있습니까? –

+0

@MarcinKrzysiak 당신은'TableViewer'를 사용하고 있습니까? 개체가 행 또는 열로 정렬 되었습니까? 위의 예가 원하는대로 처리됩니다. – Baz

+0

개체의 열이 정렬됩니다. 각 열은 별도의 개체입니다. 나는'TableViewer'를 아직 사용하지 않지만, 제가 쓰는 경우가 가능하다면, 그렇게 할 것입니다. 그렇지 않다면 프로젝트 레이아웃을 약간 변경하는 것으로 생각할 수 있습니다. –