Isso deve ser resolvido no modelo e não no renderer. Por exemplo:
publicclassMyModelextendsAbstractTableModel{...publicClassgetColumnClass(intcolumn){Classklass=String.class;// para todas as outras colunas use String// primeira coluna deve ser marcávelif(column==0)klass=Boolean.class;returnklass;}}
S
spyrogyra
Bá, não entendi
Tens algum exemplo em que isso funcione?
Já to desistindo, hehehe
Valeu!
rissato
cara… qdo vc adiciona uma linha ao JTable, para criar uma coluna de CheckBox basta que o valor da respectiva coluna seja to tipo Boolean. Por exemplo:
modeloDaTabela.addRow(new Object[]{new Boolean(false), "Joao", "da Silva"});
modeloDaTabela.addRow(new Object[]{new Boolean(true), "Maria", "da Costa"});
esse codigo coloca os CheckBox na primeira coluna (de 3), sendo que a primeira está desmarcada e segunda marcada. Para ser clicável, basta vc implementar (ou sobrescrever) o metodo isCellEditable() de acordo com as suas necessidades. Lembrando que para isso funcionar é preciso implementar, novamente da maneira q melhor resolve seu problema, o método getColumnClass() do TableModel da sua tabela.
S
spyrogyra
Ok, esses dados booleanos vem do BD, e torno eles JCheckBox através do método abaixo:
Porém não consegui tornar eles clicáveis, por ex. checar e des-checar o checkbox, algum exemplo de método que resolva isso.
Que pau to tomando, na verdade preciso de um bom livro de swing ou sei lá
Valeu!
D
dango
Como eu disse antes toda a questão da coisa está no modelo. Você deve prover um modelo editável de dados e implementar os seguintes métodos (levando em consideração cada coluna editável do seu modelo):
public boolean isCellEditable(int linha, int coluna) {
if( coluna == 2 ) {
return true;
}
return false;
}entendeu?
S
spyrogyra
Valeu pelas dicas pessoal, acabei resolvendo esse problema não usando uma JTable, porém de qualquer forma ficam no fórum as dicas e exemplos desse post de como se resolver esse tipo de problema.
Obrigado a todos
[]'s
filiperangel
Galera. como eu faria para adicionar linha por linha no jTable? vlw
C
Carnevalli
Na verdade, você não adiciona a linha no Jtable, mas no modelo da JTable.
Se tabela é um JTable…
DefaultTableModel modelo = ( DefaultTableModel ) tabela.getModel();
modelo.addRow( //um vetor com os objetos que deseja inserir na linha ).
tabela.setModel( modelo );
C
Carnevalli
Aproveitando o tópico:
Como insiro um JComboBox numa JTable?
Ironlynx
Vc quer a Combo como uma célula da sua JTable???
É algo + ou - assim:
TableColumn timeColumn = table.getColumnModel().getColumn(4);//Pegará a quinta célula
JComboBox cB = new JComboBox();
cB.addItem("Flamengo");
cB.addItem("Vasco");
cB.addItem("Botafogo");
timeColumn.setCellEditor(new DefaultCellEditor(cB));