2016-09-09 7 views
0

복합 테이블 열을 만들 때 오류가 발생 했습니까?JFace + SWT 복합 테이블 뷰어

오류는 다음과 같습니다 오류가 바운드의 Arrayindexout 가자 : Error Come Arrayindexout of Bound image1

어플은 복합 찍을 때 시작되지 않습니다 Application does not start when I take Composite image2

import org.eclipse.jface.layout.TableColumnLayout; 
import org.eclipse.jface.viewers.TableViewer; 
import org.eclipse.swt.SWT; 
import org.eclipse.swt.layout.GridData; 
import org.eclipse.swt.layout.GridLayout; 
import org.eclipse.swt.widgets.Composite; 
import org.eclipse.ui.IMemento; 
import org.eclipse.ui.part.ViewPart; 

public class Theartview extends ViewPart implements Serializable { 

    public void createPartControl(Composite parent) { 

    Composite tableComposite = new Composite(parent, SWT.NONE); 
    TableColumnLayout tableColumnLayout = new TableColumnLayout(); 
    tableComposite.setLayout(tableColumnLayout); 
    tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, 
      true)); 
    } 
} 
+0

ViewPart는 SWT + JFace뿐만 아니라 RCP에 Eclipse 플러그인이 있음을 의미합니다. –

답변

1

모든 코드가하고있는가에 대한 레이아웃을 설정하는 것입니다 표는 TableColumnLayout입니다. 레이아웃을 관리 할 테이블을 실제로 만들지 않았습니다. 이 상태에서 코드를 실행하면 테이블을 찾을 수 없어 충돌합니다. 당신이 변경해야합니다, 난 그냥 여기에 간단한 setInput을 보여

Composite tableComposite = new Composite(parent, SWT.NONE); 
TableColumnLayout tableColumnLayout = new TableColumnLayout(); 
tableComposite.setLayout(tableColumnLayout); 
tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); 

TableViewer viewer = new TableViewer(tableComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); 
viewer.setContentProvider(ArrayContentProvider.getInstance()); 
// TODO viewer.setLabelProvider(new ViewLabelProvider()); 
viewer.setInput(new String[] {"One", "Two", "Three"}); 

:

그래서 당신은 최소한의 TableViewer을 만들려면이있을 수 있습니다 뭔가를 코드를 추가해야합니다. 레이블 공급자를 정의해야 할 수도 있습니다.

이 간단한 테이블은 열을 사용하지 않습니다. 이 레이아웃을 최대한 활용하려면 TableViewerColumn을 사용하여 열을 정의해야합니다.

참고 :ViewPart은 플러그인 (독립형 RCP의 일부일 수 있음)의 Eclipse보기입니다. 일반 JFace + SWT 애플리케이션이 아닙니다.