Boa tarde;
Eu vi em vários fóruns de como fazer isto, porém não consegui fazer. No meu projeto eu tenho uma classe ModeloUsuario que extende AbstractTableModel. ( A seguir)package br.com.ufac.lpp.barionix.modelosTabelas;
import br.com.ufac.lpp.barionix.entidades.Usuario;
import br.com.ufac.lpp.barionix.logica.UsuarioLogica;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class ModeloUsuario extends AbstractTableModel {
/* Lista de Usuários que representam as linhas. */
private List<Usuario> linhas;
/* Array de Strings com o nome das colunas. */
private String[] colunas = new String[]{
"Login","Usuário", "Senha", "Nível de Acesso"};
/* Cria um ClienteTableModel carregado com
* a lista de Cliente especificada. */
public ModeloUsuario() {
UsuarioLogica userLog = new UsuarioLogica();
linhas = new ArrayList<>(userLog.listarUsuario());
}
/* Retorna a quantidade de colunas. */
@Override
public int getColumnCount() {
return colunas.length;
}
/* Retorna a quantidade de linhas. */
@Override
public int getRowCount() {
return linhas.size();
}
@Override
public String getColumnName(int columnIndex) {
return colunas[columnIndex];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Usuario usuario = linhas.get(rowIndex);
String[] linhaRetornada ={String.valueOf(usuario.getCpf()), usuario.getNome(), usuario.getSenha(), String.valueOf(usuario.getNivelAcesso())};
return linhaRetornada[columnIndex];
}
public void atualizar(Usuario usuario) {
linhas.add(usuario);
int indice = getRowCount()-1;
fireTableRowsInserted(indice, indice);
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.ufac.lpp.barionix.visao;
import br.com.ufac.lpp.barionix.excecoes.UsuarioEXCECAO;
import br.com.ufac.lpp.barionix.logica.UsuarioLogica;
import br.com.ufac.lpp.barionix.modelosTabelas.ModeloUsuario;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
/**
*
* @author Albert
*/
public class PainelUsuario extends JPanel{
TratamentoEvento te = new TratamentoEvento();
private JPanel painelUsuario = new JPanel(new BorderLayout());
private JPanel painelSuperior = new JPanel(new GridLayout(1, 1));
private JPanel painelInferior = new JPanel();
private JTable tabelaUsuario = new JTable();
private JScrollPane barraRolagem = new JScrollPane(tabelaUsuario, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
private JButton botaoCadastrar = new JButton("Cadastrar",(Icon)new ImageIcon("imagens\\newuser24x24.png"));
private JButton botaoEditar = new JButton("Editar", (Icon)new ImageIcon("imagens\\edituser24x24.png"));
private JButton botaoExcluir = new JButton("Excluir", (Icon)new ImageIcon("imagens\\deleteuser24x24.png"));
public PainelUsuario() {
tabelaUsuario.setModel(new ModeloUsuario());
tabelaUsuario.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
botaoCadastrar.addActionListener(te);
botaoEditar.addActionListener(te);
painelSuperior.add(barraRolagem);
painelInferior.add(botaoCadastrar);
painelInferior.add(botaoEditar);
painelInferior.add(botaoExcluir);
painelUsuario.add(painelSuperior, BorderLayout.CENTER);
painelUsuario.add(painelInferior, BorderLayout.PAGE_END);
}
public JPanel getPainelUsuario(){
return painelUsuario;
}
public class TratamentoEvento implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == botaoCadastrar){
PainelCadastrarUsuario pcu = new PainelCadastrarUsuario();
}else{
if(e.getSource() == botaoEditar){
try{
if(tabelaUsuario.getSelectedRow()==-1){
throw new UsuarioEXCECAO("É necessário selecionar um usuário.", "Aviso");
}else{
PainelEditarUsuario pce = new PainelEditarUsuario(new UsuarioLogica().buscarUsuarioPeloCPF(Long.parseLong(tabelaUsuario.getModel().getValueAt(tabelaUsuario.getSelectedRow(), 0).toString())));
}
}catch(UsuarioEXCECAO uxc){
}
}
}
}
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.ufac.lpp.barionix.visao;
import br.com.ufac.lpp.barionix.excecoes.UsuarioEXCECAO;
import br.com.ufac.lpp.barionix.logica.UsuarioLogica;
import br.com.ufac.lpp.barionix.modelosTabelas.ModeloUsuario;
import br.com.ufac.lpp.barionix.visao.validador.ValidarGerenciarUsuario;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Albert
*/
public class PainelCadastrarUsuario extends PainelGerenciarUsuario{
HashMap mapa = new HashMap();
public PainelCadastrarUsuario() {
super("Cadastrar Usuário");
botaoSalvar.addActionListener(new TratamentoEvento());
}
public class TratamentoEvento implements ActionListener{
public void actionPerformed(ActionEvent e){
try {
if(e.getSource() == botaoSalvar){
HashMap mapa = new HashMap();
mapa.put("Usuário",fieldUsuario.getText());
mapa.put("CPF", fieldCpf.getText().replace("_","").replace(".","").replace("-", ""));
mapa.put("Senha",fieldSenha.getText());
mapa.put("Admin",radioAdministrador.isSelected());
mapa.put("User",radioUsuario.isSelected());
ValidarGerenciarUsuario vgu = new ValidarGerenciarUsuario(mapa);
UsuarioLogica ul = new UsuarioLogica(vgu.validarUsuario());
ul.cadastrarUsuario();
}
} catch (UsuarioEXCECAO ex) {
}
}
}
}
Bom, como pode ser visto nos código ai em cima, não existe chamada para o método atualizar do ModeloUsuario porque já tentei usar em vários lugares do código. Mas sem sucesso.
Grato pela ajuda.
Albert F. Josuá Costa