Orientação a Objetos Componentes: JTable DefaultTableModel/ MouseListener Gil Eduardo de Andrade
A classe JTable (import java.swing.jtable) A classe JTablepermite 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
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();
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);
Métodos da classe JTable Por padrão, um objeto da classe JTabletem 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);
Métodos da classe JTable Por padrão, um objeto da classe JTabletem como configuração a seleção de uma ou várias linhas da tabela pelo usuário; Entretanto, quando utilizado para efetuar: insert, updatee deleteé interessante desabilitar essa configuração, para tal utiliza-se o método: setselectionmode(listselectionmodel.single_selection);
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 updateou delete do mesmo; O método da classe JTableque permite identificar essa seleção é: getselectedrow();
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 JTableque permite agregar esse objeto é: setmodel();
Exemplo: JTable Componente: 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.
Exemplo: JTable Componente: 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.
A classe DefaultTableModel (import java.swing.defaulttablemodel) Assim como acontece com a classe JList, na JTableexiste um modelo de dados que recebe as informações a serem apresentadas pelo componente; No caso do JListutiliza-se a classe de modelo DefaultListModel, já com o JTableé utilizada a classe DefaultTableModel;
A classe DefaultTableModel Ao instanciar um objeto da classe DefaultTableModel, não é passado, normalmente, nenhum parâmetro ao seu construtor: DefaultTableModel dtm = new DefaultTableModel();
Métodos da classe DefaultTableModel Como a classe DefaultTableModelrecebe 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 DefaultTableModelutiliza-se 0 método getrowcount();
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 arraycomo parâmetro, contendo os nomes de todos os campos a serem apresentados;
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;
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();
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.
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;
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 Controleresponsável por implementar a interface MouseListener ;
Eventos: MouseListener - classe Janela.java(Visualização) - classe Controle.java (Controle)
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.