TableModel Netbeans Marco Reis. TelaPrincipal Your Text here Lorem ipsum dolor sit amet,...

Post on 17-Apr-2015

111 views 3 download

Transcript of TableModel Netbeans Marco Reis. TelaPrincipal Your Text here Lorem ipsum dolor sit amet,...

TableModel NetbeansMarco Reis

TelaPrincipal

TelaPrincipal

• Your Text here

• Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

• Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

TelaPrincipal

Eventos

Formulários internos

TelaConsultaLivros

TelaDeCadastroDeLivro

TelaDeConsultaLivroComboBox

TelaDeCadastroDeLivro

public void carregaDadosDoLivro(String id) {

Livro livro = new DAOLivro().consultarPeloId(id);

txtAutor.setText(livro.getAutor());

txtEdicao.setText(livro.getEdicao());

txtEditora.setText(livro.getEditora());

txtTitulo.setText(livro.getTitulo());

txtIsbn.setText(livro.getIsbn());

}

ModeloSimplesDeTabela

package com.livraria.util;

import java.lang.reflect.Method;

import java.util.*;

import javax.swing.table.*;

public class ModeloSimplesDeTabela extends AbstractTableModel {

private ArrayList linhas = null;

private String[] colunas = null;

private String[] atributos = null;

public String[] getAtributos() {

return atributos;

}

public String getColumnName(int column) {

return getColunas()[column];

}

public String[] getColunas() {

return colunas;

}

Cont...

public ArrayList getLinhas() {

return linhas;

}

public void setColunas(String[] strings) {

colunas = strings;

}

public void setLinhas(ArrayList list) {

linhas = list;

}

public void setAtributos(String[] atributos) {

this.atributos = atributos;

}

public int getRowCount() {

return getLinhas().size();

}

public int getColumnCount() {

return getColunas().length;

}

Cont...

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

try {

// Obtem a linha, que é uma String []

Object o = getLinhas().get(rowIndex);

String s = getAtributos()[columnIndex];

String atributo = s.substring(0, 1).toUpperCase() + s.substring(1);

Method m = o.getClass().getMethod("get" + atributo);

// Retorna o objeto que esta na coluna

return m.invoke(o);

} catch (Exception ex) {

ex.printStackTrace();

}

return null;

}

Cont...

/**

*

* @param dados Arraylist com os objetos para a tabela

* @param colunas - Nome das colunas da tabela. A primeira coluna deve ser o ID do objeto, para posterior recupera ‹ヘ o do mesmo.

* @param atributos - Nome dos atributos do objeto, na sequencia em que eles devem aparecer na tabela

*/

public ModeloSimplesDeTabela(ArrayList dados, String[] colunas, String[] atributos) {

setLinhas(dados);

setColunas(colunas);

setAtributos(atributos);

}

TelaDeConsultaLivroComboBox

public TelaDeConsultaLivroComboBox() {

initComponents();

carregaComboDeLivros();

}

private void carregaComboDeLivros() {

DAOLivro dao = new DAOLivro();

Collection lista = dao.consultaTodos();

ComboBoxModel modelo = new DefaultComboBoxModel(lista.toArray());

cboLivros.setModel(modelo);

}

Cont...

private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) {

Object o = cboLivros.getSelectedItem();

Livro livro = (Livro) o;

TelaDeCadastroDeLivro tela = new TelaDeCadastroDeLivro();

tela.setVisible(true);

tela.carregaDadosDoLivro(livro.getId());

getParent().add(tela);

dispose();

}

TelaConsultaLivros

private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {

String[] nomeDasColunas = new String[] {"C—digo", "Autor", "T’tulo", "Editora"};

String[] atributosDaClasse = new String[] {"id", "autor", "titulo", "editora"};

//Tem que converter para ArrayList, pois a recuperação é feita através do índice

ArrayList lista = (ArrayList) new DAOLivro().consultaTodos();

ModeloSimplesDeTabela modelo = new ModeloSimplesDeTabela(lista,

nomeDasColunas, atributosDaClasse);

tblResultado.setModel(modelo);

}

Cont...

private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) {

int i = tblResultado.getSelectedRow(); //Numero da coluna selecionada

String valor = (String) tblResultado.getValueAt(i, 0); //Conteœdo da coluna id da linha selecionada.

TelaDeCadastroDeLivro tela = new TelaDeCadastroDeLivro();

tela.setVisible(true);

tela.carregaDadosDoLivro(valor);

JDesktopPane paginaPrinciapl = (JDesktopPane) getParent();

paginaPrinciapl.add(tela);

dispose();

}