E ai pessoal, sou novo aqui e preciso muito da ajuda de vocês :lol:
é o seguinte, eu tenho um TableModel e quero que ele comece passando para a JTable os valores iniciais que JÁ ESTÃO NO BANCO DE DADOS… eu estou conseguindo tranquilamente passar os dados para o BD e após isso mostra-los na JTable, mas eu quero que ao iniciar a JTable ja tenha os valores que foram adicionados anteriormente (ou seja, o que ja esta previamente no BD)… espero ter sido claro :roll:
ajuda ai vai!
[code] public class DaoCliente {
Connection conexao;
public DaoCliente(Connection conexao){
this.conexao = conexao;
}
public void insert(Clientes cli){
try {
Statement st = conexao.createStatement();
st.execute("INSERT INTO clientes VALUES('" +cli.getNome()+"','" +
cli.getSexo() + "','" +
cli.getCodCliente() + "','" +
cli.getCpf() +"','" +
cli.getTelefone()+"')");
} catch (SQLException e) {
e.printStackTrace();
}
}
public Map<Integer,Clientes> buscaTodosClientes(){ // aqui é onde ele faz a busca no BD
Map<Integer,Clientes> lista = new TreeMap<Integer, Clientes>();
try {
Statement st = conexao.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM clientes");
rs.first();
while (rs.isAfterLast()){
Integer codigo = rs.getInt(0);
String nome = rs.getString(1);
Character sexo = rs.getString(2).charAt(0);
String cpf = rs.getString(3);
String telefone = rs.getString(4);
Clientes cli = new Clientes(codigo,nome,sexo,cpf,telefone);
lista.put(codigo,cli);
rs.next();
}
} catch (SQLException e) {
e.printStackTrace();
}
return lista;
}
}
[/code]
[code]public class UICadastroClientes extends Interfaces implements TableModelListener{
private static UICadastroClientes tela;
private JLabel lbTitulo;
private JButton btnInserir;
private JTable listaClientes;
private TableModelCliente tmClientes;
private UICadastroClientes(Programas programa) {
super(programa, "Clientes");
this.setSize(new Dimension(600, 400));
Container cpFrame = this.getContentPane();
cpFrame.setLayout(new BorderLayout());
lbTitulo = new JLabel("Clientes Cadastrados: ");
cpFrame.add(lbTitulo, BorderLayout.NORTH);
tmClientes = new TableModelCliente(meuPrograma.getListaClientes());
tmClientes.addTableModelListener(this);
listaClientes = new JTable(tmClientes);
cpFrame.add(listaClientes, BorderLayout.CENTER);
btnInserir = new JButton("Novo Cliente");
btnInserir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
abreTelaNovoCliente();
}
});
cpFrame.add(btnInserir, BorderLayout.SOUTH);
}
public static UICadastroClientes getInstance(Programas programa) {
if (tela == null) {
tela = new UICadastroClientes(programa);
}
return tela;
}
private void abreTelaNovoCliente() {
UIInsereCliente novoCliente = UIInsereCliente.getInstance(meuPrograma,tmClientes);
novoCliente.setVisible(true);
}
public void tableChanged(TableModelEvent arg0) {
this.invalidate();
this.repaint();
}
}[/code]
[code]public class Programas {
Interfaces menu;
Map<Integer,Clientes> listaClientes;
Connection conexao;
DaoCliente daoCliente;
public Programas(){
menu = new UIMenu(this);
this.criaConexao();
this.daoCliente =new DaoCliente(conexao);
listaClientes = daoCliente.buscaTodosClientes();
}
public void criaConexao() {
if (conexao == null){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conexao =
DriverManager.getConnection("jdbc:mysql://localhost/Loja?user=root&password=root");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
Programas meuPrograma = new Programas();
meuPrograma.resolvaProblema();
}
private void resolvaProblema() {
menu.setVisible(true);
}
protected void finalize() throws Throwable {
super.finalize();
conexao.close();
}
public void adicionaCliente(Clientes cli){
listaClientes.put(cli.getCodCliente(), cli);
daoCliente.insert(cli);
}
public Map <Integer,Clientes> getListaClientes(){
return listaClientes;
}
}
[/code]
[code]public class TableModelCliente extends DefaultTableModel {
private Map<Integer,Clientes> listaClientes;
private DaoCliente listaDobanco;
public TableModelCliente(Map<Integer,Clientes> lista){
this.listaClientes = lista;
}
public int getColumnCount() {
return 5;
}
public String getColumnName(int coluna) {
switch(coluna){
case 0:return "Código";
case 1:return "Nome";
case 2:return "Sexo";
case 3:return "CPF";
case 4:return "Telefone";
default:return "";
}
}
public Object getValueAt(int linha, int coluna) {
if (linha == 0){
return getColumnName(coluna);
}
List<Clientes> vetor = new ArrayList<Clientes>();
vetor.addAll(listaClientes.values());
Clientes cli = vetor.get(linha-1);
switch(coluna){
case 0:return cli.getCodCliente();
case 1:return cli.getNome();
case 2:return cli.getSexo();
case 3:return cli.getCpf();
case 4:return cli.getTelefone();
default:return "";
}
}
public Class<?> getColumnClass(int coluna) {
switch(coluna){
case 0:return Integer.class;
case 1:return String.class;
case 2:return Character.class;
case 3:return String.class;
case 4:return String.class;
default:return Object.class;
}
}
public int getRowCount() {
return listaClientes != null ? listaClientes.size() + 1 : 1;
}
public boolean isCellEditable(int linha, int coluna) {
if (linha == 0){
return false;
}else{
return true;
}
}
}[/code]
brigadão pessoal