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!
R
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
F
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?
I
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));