Orientação a Objetos - Gil Eduardo de Andrade

Propaganda
Orientação a Objetos
Componentes: JTable
DefaultTableModel / MouseListener
Gil Eduardo de Andrade
Componente: JTable
A classe “JTable”
(import java.swing.JTable)
• A classe JTable permite a inserção de tabelas
de dados em formulários Java (janela);
• Normalmente, o JTable é utilizado para
apresentar ao usuário os dados armazenados
em tabelas do banco de dados;
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
A classe “JTable”
• Ao instanciar um objeto da classe JTable, não
é passado, normalmente, nenhum parâmetro
ao seu construtor:
– JTable jtb_alunos = new JTable();
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
A classe “JTable” + “JScrollPane”
• Como o volume de dados a ser apresentado
pelo JTable, normalmente, é grande, torna-se
aconselhável vinculá-lo a um JScrollPane;
– JScrollPane jsp = new JScrollPane(tb_alunos);
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Métodos da classe “JTable”
• Por padrão, um objeto da classe JTable tem
sua configuração como Auto-Resize, ou seja,
largura das suas colunas são calculadas
automaticamente;
• Porém, em muitos casos, essa particularidade
não é interessante, e para tal utiliza-se o
método: setAutoResizeMode(Jtable.AUTO_REZIZE_OFF);
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Métodos da classe “JTable”
• Por padrão, um objeto da classe JTable tem como
configuração a seleção de uma ou várias linhas da
tabela pelo usuário;
• Entretanto, quando utilizado para efetuar: insert,
update e delete é interessante desabilitar essa
configuração, para tal utiliza-se o método:
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Métodos da classe “JTable”
• Quando o usuário seleciona uma linha da
tabela, é possível identificar qual registro foi
escolhido, e então efetuar um update ou
delete do mesmo;
• O método da classe JTable que permite
identificar essa seleção é: getSelectedRow();
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Métodos da classe “JTable”
• Para povoar um JTable é preciso utilizar um
objeto de uma classe modelo, ou seja, os
dados são adicionados a esse objeto e
posteriormente ele é agregado ao JTable;
• O método da classe JTable que permite
agregar esse objeto é: setModel();
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Exemplo: “JTable”
O exemplo acima apresenta apenas o código necessário para
instanciar um objeto JTable, utilizar alguns dos seus métodos e
vinculá-lo com o JScrollPane – o código-fonte completo encontra-se
disponível na seção de exemplos desta aula.
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Exemplo: “JTable”
Este exemplo acima já utiliza o conceito de DefaultTableModel,
apresentado nos próximos slides – o código-fonte completo
encontra-se disponível na seção de exemplos desta aula.
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
A classe “DefaultTableModel”
(import java.swing.DefaultTableModel)
• Assim como acontece com a classe JList, na
JTable existe um modelo de dados que recebe
as informações a serem apresentadas pelo
componente;
• No caso do JList utiliza-se a classe de modelo
DefaultListModel, já com o JTable é utilizada a
classe DefaultTableModel;
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
A classe “DefaultTableModel”
• Ao instanciar um objeto da classe
DefaultTableModel, não é passado,
normalmente, nenhum parâmetro ao seu
construtor:
– DefaultTableModel dtm = new DefaultTableModel();
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Métodos da classe “DefaultTableModel”
• Como a classe DefaultTableModel recebe os
dados vindo das tabelas do banco, torna-se
importante, antes de adicionar informações ao
mesmo, limpar o seu conteúdo, para tal utiliza-se
o método setRowCount(0);
• Caso seja necessário obter o total de registros
armazenados no DefaultTableModel utiliza-se 0
método getRowCount();
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Métodos da classe “DefaultTableModel”
• Após zerarmos as informações de um
DefaultTable, temos que informar ao mesmo, o
nome dos campos (cabeçalho) a serem
apresentados pela tabela;
• O método que permite essa ação é:
setColumnIdentifiers(array) – que recebe um
array como parâmetro, contendo os nomes de
todos os campos a serem apresentados;
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Métodos da classe “DefaultTableModel”
• Definindo o cabeçalho da tabela (DefaultTable) já é
possível adicionar as linhas (Rows) de dados,
para isso utiliza-se o método: addRow(Object[]);
• O método addRow() recebe como parâmetro
um vetor de Objetos, normalmente, objetos
da classe String, obtidos das tabelas do Banco
de Dados;
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
“JTable” + “DefaultTableModel”
• Por fim, após ter sido configurado (definido) o
cabeçalho do DefaultTableModel e também
inserida as informações vindas das tabelas do
Banco de Dados é agrado o modelo a classe
JTable através do seu método setModel();
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Componente: JTable
Exemplo: “JTable” + “DefaultTableModel”
O exemplo ao lado apresenta
os principais métodos da
classe DefaultTableModel.
Primeiramente ele é limpo:
setRowCount(0), após isso
seu cabeçalho é definido:
setColumnIdentifiers(array).
Então, os dados vindos da
tabela são adicionados ao
DefaultTableModel, dentro
do laço: addRow(Object[]), e
por fim ele é vinculado ao
JTable: setModel(dtm;
O código-fonte completo
está disponível na seção de
exemplos desta aula.
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Eventos: MouseListener
Eventos com “JTable”
• Assim como visto anteriormente na utilização
de componentes gráficos Swing, o JTable
também é orientado a eventos;
• Sendo assim, para capturarmos a ação, pelo
usuário, de selecionar uma linha do JTable
precisamos registrar esse evento;
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Eventos: MouseListener
Eventos com “JTable”
• Para o registro desse evento, torna necessária
a implementação da interface “MouseListener”
e a utilização do método “addMouseListener()”;
• O método “MouseClicked()”, entre outros,
deve ser declarado e implementado dentro da
classe de Controle responsável por
implementar a interface “MouseListener”;
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Eventos: MouseListener
- classe Janela.java (Visualização)
- classe Controle.java
(Controle)
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Eventos: MouseListener
Exemplo: Evento JTable
O código-fonte completo
para o exemplo ao lado
encontra-se disponível na
seção de exemplos desta
aula.
Aula 17: Conexão: JTable / DefaultTableModel – Gil Eduardo de Andrade
Download