2016-09-14 5 views
0

Eclipse에서 테이블 뷰어에서 콤보 상자를 만들려고합니다. 올바른 방향으로 나를 가리키고 있습니다. 지금까지 모든 작업을 완료했는데 문제는 콤보 상자가 표시되지 않습니다. 당신은 테이블의 각 열에 대한 레이블 제공자를 설정해야합니다 -AssertionFailedException 테이블 뷰어에서 CommBobox를 만드는 동안

public void createPartControl(Composite parent) { 
    System.out.println("createPartControl call"); 

    // For Testing 

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

    tableViewer = new TableViewer(tableComposite, SWT.MULTI | SWT.H_SCROLL 
      | SWT.V_SCROLL); 
    tableViewer.setContentProvider(ArrayContentProvider.getInstance()); 
    // TODO viewer.setLabelProvider(new ViewLabelProvider()); 
    table = tableViewer.getTable(); 
    // Table table = tableViewer.getTable(); 
    table.setHeaderVisible(true); 
    table.setLinesVisible(true); 
    String[] titles = { "Threat Name", "Category Name", "Status", 
      "Priority", "Description", "Justification" }; 

    for (int loopIndex = 0; loopIndex < titles.length; loopIndex++) { 
     tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); 
     TableColumn tblclmn = tableViewerColumn.getColumn(); 
     tableColumnLayout.setColumnData(tblclmn, new ColumnPixelData(200, 
       true, true)); 
     tblclmn.setText(titles[loopIndex]); 
    } 

} 

    private void fillRows(String shortdesc, String categ, String descp) { 
    System.out.println("fillRows call from above method.");  
    TableColumn status_Name_Col = tableViewer.getTable().getColumn(2); 
    System.out.println("**************** status_Name_Col ************ "+ status_Name_Col);  
     tableViewerColumn.setLabelProvider(new ColumnLabelProvider() 
     { 
      @Override 
      public String getText(Object element) 
      { 
       Dummy p = (Dummy) element; 
       return p.getValue(); 
      } 
     }); 
     tableViewer.addSelectionChangedListener(new ISelectionChangedListener() 
     { 
      @Override 
      public void selectionChanged(SelectionChangedEvent selectionChangedEvent) 
      { 
       StructuredSelection selection = (StructuredSelection) selectionChangedEvent.getSelection(); 
       System.out.println(((Dummy) selection.getFirstElement()).getValue()); 
      } 
     }); 


     List<Dummy> elements = new ArrayList<>(); 
     for (int i = 0; i < Connection.Number_Of_Connection; i++) { 
      elements.add(new Dummy("First option")); 
     } 
     tableViewer.setInput(elements); 
     tableColumnLayout.setColumnData(status_Name_Col, new ColumnWeightData(1, true)); 
     tableViewerColumn.setEditingSupport(new FirstValueEditingSupport(tableViewer)); 


} 

답변

0

어설 메시지는 매우 분명하다

오류 : Error image 코드의 블록은 테이블, 나는 오류이있어.

fillRows으로 전화를 걸지는 않았지만 그 방법에서 열 레이블 공급자를 설정하는 것이 잘못되었습니다. 열을 만드는 루프에서 레이블 공급자를 설정하십시오.

+0

나를 도와 주시겠습니까? 콤보 상자를 셋째 열에 만 설정하는 방법은 무엇입니까? –

+0

세 번째 열에 대한 편집을 지원하기 만하면됩니다. 다른 열에 대해서는 편집 지원을 설정하지 마십시오. –

+0

거기에 3 열에 콤보 상자를 설정하는 방법은 무엇입니까? 콤보 상자가 표시되지 않습니다. –