sim, mas não aparece
sim, mas não aparece[/quote]
Então posta:
a) O seu TableModel completo;
b) O trecho de código onde você associa ele ao JTable.
sim, mas não aparece[/quote]
Então posta:
a) O seu TableModel completo;
b) O trecho de código onde você associa ele ao JTable.[/quote]
[code]public class CamposTableModel extends AbstractTableModel{
private static final long serialVersionUID = 1L;
private final int COL_N = 1;
private final int COL_C = 0;
private ArrayList<Campos> campos;
public CamposTableModel() {
campos = new ArrayList<Campos>();
}
public CamposTableModel(List<Campos> lista) {
this();
campos.addAll(lista);
}
public int getRowCount() {
return campos.size();
}
public int getColumnCount() {
return 2;
}
@Override
public String getColumnName(int column) {
if (column == COL_N) {
return "-";
} else if (column == COL_C){
return "Nomes";
}
return "";
}
@Override
public Class<?> getColumnClass(int columnIndex) {
if (columnIndex == COL_N) {
return String.class;
} else if (columnIndex == COL_C){
return Boolean.class;
}
return String.class;
}
public Object getValueAt(int rowIndex, int columnIndex) {
Campos p = campos.get(rowIndex);
if (columnIndex == COL_N) {
return p.getNome();
} else if (columnIndex == COL_C){
return p.getCampos();
}
return "";
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
public ArrayList<Campos> getCampos() {
return campos;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Campos p = campos.get(rowIndex);
if (columnIndex == COL_NOME) {
p.setNome(aValue.toString());
} else if (columnIndex == COL_CHCK){
if (p.getCampos().equals(Boolean.FALSE)){
p.setCampos(Boolean.TRUE);
}else{
p.setCampos(Boolean.FALSE);
}
}
fireTableCellUpdated(rowIndex, columnIndex);
}
public void inserir(Campos c) {
campos.add(c);
fireTableDataChanged();
}
public void excluir(int pos) {
campos.remove(pos);
fireTableDataChanged();
}
public void excluir(Campos p) {
campos.remove(p);
fireTableDataChanged();
}
public void ordenarPorQuantidade() {
for (AtributosSelecionados c:campos){
System.out.println("------------------------");
System.out.println("Nome:"+ c.getNome());
System.out.println("Marcado:" + c.getCampos());
System.out.println("------------------------");
}
fireTableDataChanged();
}
}
[/code]
campoTableModel = new CamposTableModel(listaCamposSelecionado);
tableCampos.setModel(campoTableModel);
chamando assim monta a jtable mas não mostra os nomes dos campos;
acho que falta algo, só não sei onde
Posta o método inteiro do trecho onde vc cria o JTable e associa ao form.
Seu model está certo. Está só ineficiente por vc disparar o datachanged sempre, mas esse não é o problema.
[quote=ViniGodoy]Posta o método inteiro do trecho onde vc cria o JTable e associa ao form.
Seu model está certo. Está só ineficiente por vc disparar o datachanged sempre, mas esse não é o problema.[/quote]
Eu pedi o método inteiro.
ArrayList<CamposRetornados> listaCamposRetornados = new ArrayList<listaCamposRetornados>();
private void initComponents() {
comboCampos = new javax.swing.JComboBox();
spCampos = new javax.swing.JScrollPane();
tableCampos = new javax.swing.JTable();
int qtdCampos = listaCamposRetornados.size();
String[] listaCampos = new String[qtdCampos];
comboCampos.setmodel(new javax.swing.DefaultComboBoxModel(listaCampos));
spCampos.setViewportView(tableCampos);
deu certo, estava invertido o código abaixo:
@Override
public String getColumnName(int column) {
if (column == COL_N) {
return "-";
} else if (column == COL_C){
return "Nomes";
}
return "";
}
De qualquer forma, isso só deveria estar imprimindo os nomes de forma invertida.
Eu acharia melhor inverter o valor dos índices no topo, e não esse if, do jeito que você fez. Senão o resto do seu model vai ficar inconsistente.
[quote=ViniGodoy]De qualquer forma, isso só deveria estar imprimindo os nomes de forma invertida.
Eu acharia melhor inverter o valor dos índices no topo, e não esse if, do jeito que você fez. Senão o resto do seu model vai ficar inconsistente.[/quote]
colocar
private final int COL_N = 0;
private final int COL_C = 1;
?