2012-10-28 2 views
0

Im 이클립스에서 Window Builder 플러그인을 사용하여 모든 시각적 구성 요소를 만들고 JTable을 추가하고 처음에는 간단한 JTable이었으며 데이터를 올바르게 표시했습니다. JTable의 데이터를 편집 할 필요가 없기 때문에 isCellEditable 메서드를 사용할 모델을 만듭니다. 내 코드는 이것입니다. 내가이 일을 할 때 AbstractTableModel의 JTable이 표시되지 않습니다.

public class MyTableModel extends AbstractTableModel { 

     private static final long serialVersionUID = 1L; 
     private String[] columnNames; 
     private Object[][] data; 

     public MyTableModel(Object[][] sentdata, String[] cnames){ 
      columnNames = cnames; 
      data = sentdata; 
     } 

     @Override 
     public int getColumnCount() { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public int getRowCount() { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public Object getValueAt(int rowIndex, int columnIndex) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     public boolean isCellEditable (int row, int column){ 
      return false; 
     } 

    }//fin del modelo 

과 클래스의 생성자에서

String[] NombresdeColumnas = {"Nombre del Producto", "Cantidad en Inventario", "Precio Unitario"}; 
RegistroInventario inventariodatos = new RegistroInventario(); 
Object[][] data = inventariodatos.regresarInventario(); 

MyTableModel model1 = new MyTableModel(data, NombresdeColumnas); 

Table_Inventario = new JTable(model1); 
Table_Inventario.setGridColor(Color.gray); 

JScrollPane scrollPane_1 = new JScrollPane(); 
scrollPane_1.setViewportView(Table_Inventario); 

이며 아무것도 보여 나던 있지만 :

Table_Inventario = new JTable(data, NombresdeColumnas); 

그냥 잘 작동했다, 난 오류가 윈도우 빌더 양식 이클립스 또는 코드에서 새로운 doning JTables을 발생시켜야하는지 알 수 없습니다.

답변

2

문제가

public int getColumnCount() { 

public int getRowCount() { 

대신 사용 DefaultTableModelreturn 0;입니다, 확인하는 경우는 Object[][] 데이터 또는 Vector of Vectors

사용에 대한 AbstractTableModel를 사용하는 정말 중요한 문제가 아니다 AbstractTableModel 모델을 기반으로합니다. HashMap 또는 java.util.List e.i.

+0

덕분에 남자의 'How to create a TableModel' 섹션을 읽기 시작한다고 생각합니다. – Pedro

+0

[시작할 수 있음] (http://stackoverflow.com/questions/6900628/refreshing-background-color-for-a-row-in-jtable/6901508#6901508) – mKorbel

2

AbstractTableModel에는 데이터가 없습니다.

getColumnCountgetRowCount 메서드를 구현하여 0 행과 0 열이 포함되어 있음을 나타냅니다.

그리고 이러한 방법을 조정하더라도 nullgetValueAt 메서드에서 항상 반환하므로 생성자에서 전달 된 데이터는 사용하지 마십시오.

나는, 내가 것은 A가 AbstractTableModel가에 대한 세부 사항에 좀 더 검색합니다 당신이 테이블 튜토리얼 내가 방법이 중요 taht를하지 않았다 않습니다 생각

관련 문제