2013-05-25 3 views
0

지난 이틀간 JTable으로 자바 애플리케이션에서 데이터보기 테이블을 만들려고했습니다.JTable 헤더가 설정되지 않았습니다.

Netbeans 바인딩 옵션이 작동하지 않지만 신경 쓰지 않고 자신 만의 TableModel을 생성 할 수있었습니다.

데이터가 표에 표시되지만 헤더에는 항상 각 열에 대해 문자 (A, B, C ...) 만 포함됩니다. 한순간에 모든 것이 잘 작동했지만 그때 특정 테이블에 대해 다른 모델을 설정하고 싶었고 완전히 새로운 JPanel을 만들고 처음부터 다시 설정해도 레이블이 올바르게 표시되지 않습니다.

이 내 사용자 정의의 TableModel 클래스

public class MyTableModel extends AbstractTableModel{  

private ArrayList<Options> list; 
String[] headers; 

public MyTableModel(ArrayList<Options> list, String[] headers) { 
    this.list = list; 
    this.headers = headers; 
} 


@Override 
public int getRowCount() { 
    return this.list.size(); 
} 

@Override 
public int getColumnCount() { 
    return headers.length; 
} 

@Override 
public Object getValueAt(int rowIndex, int columnIndex) { 
    if(columnIndex == 0) { 
     return list.get(rowIndex).getId(); 
    } 
    if(columnIndex == 1) { 
     return list.get(rowIndex).getText(); 
    } 
    else { 
     return null; 
    } 
} } 

입니다 그리고 이것은 내가 특정의 또 다른 모델을 설정하고 싶었

ArrayList<Options> list; 
String[] optionHeaders = {"id", "text"}; 

public table2frame() { 

    initComponents(); 
    list = (ArrayList) zadanie_2_app.Zadanie_2_app.findAll(); 
    JTable table2 = new JTable(new MyTableModel(list, optionHeaders));} 
+0

열을 설정하지 않았습니다. – Makky

답변

2

AbstractTableModelgetColumnName을 대체해야하며 그렇지 않으면 자리 표시 자의 열 이름이 사용됩니다. 추가

@Override 
public String getColumnName(int column) { 
    return headers[column]; 
} 
+0

그래, 그게 효과가 있었지만, 왜 내가 전에 그것 없이는 효과가 있었는지 궁금하다. – yossarian

+0

이전 코드를 보지 않고 말할 수 없다. 무시는 _ [테이블 모델 생성] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data)에서 지침으로 제공됩니다 _ – Reimeus

1

JFrame의 클래스의 코드 (내가 실행 한)의 일부입니다 테이블을 만들었고 완전히 새로운 JPanel을 만들고 처음부터 다시 설정하더라도 레이블이 올바르게 표시되지 않습니다.

AFAIK이 JTable의 컨테이너가 JTable의

에 대한
  • 가 JScrollPane에 JTable에 넣어

    것으로,이 desription에서 이해 JTable가 달리 JTableHeader에 표시되지 않은, JScrollPane의에 배치해야 자동으로

  • GET JTableHeader입니다 JTable의에서,가 BorderLayout에 JPanel에 대한 LayoutManager의 변경 Center 지역의 JTable를 넣어 JTableHeader에이 지역 NOTHR하는

관련 문제