Pessoal, boa tarde!!!
estou com uma dúvida que acho ser simples porém não estou conseguindo fazer funcionar, seguinte…
Tenho um TableModel próprio e um jTable, quero clicar no botão addLinha, criar uma linha na minha jTable e na coluna idlinha ir numerando conforme eu vou clicando no botão addLinha, como abaixo…
idlinha | usuario | telefone
1 | teste | 123
2 | teste2 | 456
seguem abaixo os meus cógidos.
// Modelo usuario
package modelo;
public class UsuarioMod {
int idlinha;
String usuario;
String Telefone;
public UsuarioMod (){}
public UsuarioMod (int idlinha, String usuario, String Telefone) {
this.idlinha = idlinha;
this.usuario = usuario;
this.Telefone = Telefone;
}
public int getidlinha() {
return idlinha;
}
public void setidlinha(int idlinha) {
this.idlinha = idlinha;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getTelefone() {
return Telefone;
}
public void setTelefone(String Telefone) {
this.Telefone = Telefone;
}
}
//______________________________________________________________________
//Modelo Table Model
package modelo;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class JTableMod extends AbstractTableModel{
private List<UsuarioMod> dados = new ArrayList<>();
private String[] colunas = {"ID Usuario","Usuario","Telefone"};
//------------------------------------------------------------------------------
@Override
public int getRowCount() {
return dados.size();
} //Pega as colunas
//------------------------------------------------------------------------------
@Override
public int getColumnCount() {
return colunas.length;
} //Pega as linhas
//-----------------------------------------------------------------------------
@Override
public String getColumnName(int nomeColunas) {
return colunas[nomeColunas];
} //Pega os nomes das colunas
//------------------------------------------------------------------------------
@Override
public Object getValueAt(int linha, int coluna) {
switch(coluna){
case 0:
return dados.get(linha).getidlinha();
case 1:
return dados.get(linha).getUsuario();
case 2:
return dados.get(linha).getTelefone();
}
return null;
} //Pega os Valores
//------------------------------------------------------------------------------
@Override
public void setValueAt(Object valor, int linha, int coluna) {
switch(coluna){
case 0:
dados.get(linha).setidlinha(Integer.parseInt((String) valor));
break;
case 1:
dados.get(linha).setUsuario((String) valor);
break;
case 2:
dados.get(linha).setTelefone((String) valor);
break;
}
this.fireTableRowsUpdated(linha, linha);
} //Atualiza as linhas na view
//------------------------------------------------------------------------------
@Override
public boolean isCellEditable(int linha, int coluna) {
return coluna != 0;
} //Controla a edição dos campos
//--------------------------------------------------------------------------
public void addRow(UsuarioMod tMod){
this.dados.add(tMod);
this.fireTableDataChanged();
} //Adiciona as linhas na view
//------------------------------------------------------------------------------
public void removeRow(int linha){
this.dados.remove(linha);
this.fireTableRowsDeleted(linha, linha);
} //Remove as linhas na view
//------------------------------------------------------------------------------
public void add(UsuarioMod testeMod) {
this.dados.add(testeMod);
fireTableDataChanged();
}
public void addAll(List<UsuarioMod> dados) {
this.dados.addAll(dados);
fireTableDataChanged();
}
public List<UsuarioMod> getDados() {
return dados;
}
}
//_____________________________________________________________________
agradeço desde ja a ajuda de todos…