PDA

View Full Version : [JAVA] Problema JTable susetting vari


Napalm
05-03-2009, 15:31
Salve a tutti,
ho creato un mio TableModel che estende AbstractTableModel:
public class TableBookModel extends AbstractTableModel{

/**
*
*/
private static final long serialVersionUID = 1L;

private String[] columnNames = {"Titolo","Elimina"};

private Object[][] data;

boolean[] columnsVisible = new boolean[3];

public TableBookModel(Vector<Book> books){

data = new Object[books.size()][3];
int x = 0;

for(Book book : books){

data[x][0] = book.getTitle();
data[x][1] = new Boolean(true);
data[x][2] = book.getTagCode();
x++;
}
}

/*public int getColumnCount() {
return columnNames.length;
}*/

public int getRowCount() {
return data.length;
}

public String getColumnName(int col) {
return columnNames[col];
}
@Override
public Object getValueAt(int row, int col) {
return data[row][col];
}

@SuppressWarnings("unchecked")
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}

public boolean isCellEditable(int row, int col) {
if (col < 1) {
return false;
} else {
return true;
}
}

public void setValueAt(Object value, int row, int col) {

data[row][col] = value;
fireTableCellUpdated(row, col);

}

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

}


poi ho inserito questa porzione di codice per creare la Jtable di test:

Vector<Book> listOfBook = new Vector<Book>();

Book book = new Book();
book.setTitle("Ciao");
book.setTagCode("Bye");
listOfBook.add(book);
book = new Book();
book.setTagCode("32423141");
book.setTitle("dsafasdfas");
listOfBook.add(book);
TableBookModel tbm = new TableBookModel(listOfBook);

jTableBook.setModel(tbm);

TableColumn col = jTableBook.getColumnModel().getColumn(1);
int width = 30;
col.setPreferredWidth(width);

ma mi accorgo di due cose:

come mai non vedo i nomi della colonne?
come mai il size della colonna in poszione 1 si setta come vuole invece di seguire le mie indicazioni?


non riesco a venirne a capo.

NapalM