2014-10-08 5 views
0

저는 스스로 GUI를 가르치고 있으며, 실제 메뉴를 사용하여 텍스트 기반 프로그램을 구현하려고합니다. Eclipse에서 WindowBuilder를 사용하여 서식을 지정하고 인터넷 리소스를 도우려고했지만 약간의 장애물이 발생했습니다.SWT 테이블에 문자열 벡터 넣기

나는 임의의 수의 문자열을 저장할 수있는 1 차원 벡터를 가지고 있습니다. 나는 그것을 테이블에 전시하고 싶습니다. 그러나 제가 제대로하고 있는지 확실하지 않습니다. 모든 백엔드 구성 요소는 정상적으로 작동하지만 GUI를 사용하는 데 정말로 어려움을 겪고 있습니다. 당신이 제공하고자하는 팁/수정/리소스는 크게 감사하겠습니다! 나는 몇 시간 동안 주위를 실수하고 벽을 두려워했다. 솔직히 WindowBuilder 내에서 GUI 테스트에 문제가 있습니다.하지만 그것은 또 다른 이야기입니다. 테이블이 가정

item.setText(j - 1, demo.get(j)); 

당신은 당신이 어떤을 직접 작성하지 않았기 때문에 (한 열이 :

Vector<String> demo = new Vector<String>(); 
    //nonsense elements just for the sake of debugging 
    demo.addElement("Line1"); 
    demo.addElement("Line2"); 
    demo.addElement("Line3"); 
    demo.addElement("Line4"); 
    demo.addElement("Line5"); 
    demo.addElement("Line6"); 


    table = new Table(this, SWT.BORDER | SWT.FULL_SELECTION); 
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
    table.setHeaderVisible(true); 
    table.setLinesVisible(true); 

    TableItem item; 
    for(int i = 0; i < demo.size(); i++) 
    { 
     // Create a new TableItem for each line in the vector (each row) 
     item = new TableItem(table, SWT.NONE); 
     for (int j = 1; j <= demo.size(); j++) { 
      // Populate the item 
      item.setText(j - 1, demo.get(j)); 
     } 
    } 
+2

는 약간 관련이없는,하지만 (['Vector'를 사용하지 마십시오] http://stackoverflow.com/questions/1386275/why-is-java-vector-class-considered-obsolete - 또는 - deprecated) – Baz

+0

그래서, 정확히 작동하지 않는 무엇입니까? – Baz

+0

또한 Vectors에 대한 헤드 감사합니다. 나는 미래의 프로젝트를 위해 그것을 확실히 기억할 것입니다! – mKane848

답변

2

문제를이 행되어 다음과 같이 내 GUI 클래스의 관련 코드는 하나의 열만 사용), TableItem#setText(int, String)을 사용하면 i 열에 텍스트가 설정됩니다 (항목 중 하나에 대해 0과 동일). 추가 항목하기 전에 (new TableColumn(table, SWT.NONE)을)를 작성,

item.setText(demo.get(j)); 

또는

item.setText(0, demo.get(j)); 

당신이 가지고있는 경우에 더 colums

: 당신은 단지 하나 개의 컬럼을 가지고있는 경우에

그래서, 이것을 사용 다음 사용하여 항목을 추가 :

for(int i = 0; i < items.size(); i++) 
{ 
    TableItem item = new TableItem(table, SWT.NONE); 

    for(int j = 0; j < table.getColumnCount(); j++) 
    { 
     item.setText(j, "something here"); 
    } 
} 

을 그리고 나중에 당신이를 pack()해야 열 :

for(TableColumn col : table.getColumns()) 
{ 
    col.pack(); 
} 
+0

좋아, 굉장해. 나는 당신이 추가 한 비트가 크게 도움이되도록 다른 컬럼을 추가하고 싶다고 생각한다. (각 라인 옆에 숫자가있다)! 벡터에 대한 정보와 함께 대답은 훌륭합니다, 시간 내 주셔서 감사합니다 – mKane848

+0

@ mKane848 좋습니다, 그럼 내 대답을 받아 들일 것을 고려하십시오. – Baz

+1

죄송합니다! 내가 페이지를 닫기 전에 나는 그것을 쳤다. – mKane848

관련 문제