GUI WindowBuilder
GUI WindowBuilder
Clique em cada um dos JPanels e atribua o Layout desejado. No caso do exemplo, atribuiremos o AbsoluteLayout.
Insira 5 JButtons: Inserir, Alterar, Excluir, Salvar no BD e Recuperar do BD. Selecione o primeiro boto e, segurando a tecla SHIFT selecione os demais. Clique em Space equally, horizontally
Insira as seguintes JLabels: Nome, CPF, Agncia, Conta e Carto. Na frente de cada JLabel insira um JTextField. Clique em cada JTextField e em suas propriedades atribua um nome para cada varivel.
Para o TextField Titular, insira como Variable nome. Para o CPF, Agncia, Carto e Conta insira estes mesmos nomes (sem utilizar acentuao).
Clique em table e em suas propriedades, selecione model. Insira 5 campos correspondentes aos JLabels.
Feito isso, nossa tela estar pronta. Agora resta atribuir aes aos botes para que tudo funcione.
Sendo que a varivel model dever ser inserida como atributo privado, isto , no incio da classe.
Pronto, nossa tabela est configurada. Toda e qualquer manipulao dela ser feita utilizando o atributo model.
Retorne ao Design. Clique com o boto direito em cima do boto Inserir. Escolha as opes Add event handler Action Action Performed.
Isso remeter ao cdigo fonte do boto inserir. A funo deste boto ser capturar tudo o que o usurio digitar nos TextFields e inserir na tabela. Para capturar um dado de um TextField utilizamos o mtodo getText(). Para adicionar os dados na tabela, necessrio inserir todos os TextFields em um nico array de objetos, e, aps isso, utilizar o mtodo addRow() do model. Lembrando que a ordem dos itens no array de objetos deve seguir a ordem das colunas da tabela. Por exemplo: coluna 1 receber o valor da varivel nome, portanto deve ser o item 0(zero) do array. Uma das maneiras de codificar a explicao acima encontra-se a seguir:
Insira estas linhas e rode o programa. Teste atribuindo valores aos campos de texto e clicando no boto Inserir. Note que ao clicar, os dados dos campos de texto iro para a tabela, porm, continuaro nos TextFields. Para apag-los dos TextFields assim que forem para a tabela, insira abaixo da linha model.addRow(lista); as seguintes linhas: nome.setText(null); cpf.setText(null); agencia.setText(null); conta.setText(null); cartao.setText(null);
A funo deste boto resgatar os campos de uma linha selecionada para os TextFields e atualizar a linha, caso haja alteraes. Para resgatar os campos de uma linha selecionada, clique com o boto direito em table Add evend handler Mouse mouseClicked . O WindowBuilder ir abrir o cdigo fonte do programa com um novo mtodo para checar quando o mouse clica em determinada linha da tabela. Dentro do mtodo mouseClicked insira as seguintes linhas:
int totalColunas = model.getColumnCount(); //quantas colunas ha na tabela Object[] linhaCompleta = new Object[5]; //recupera dados da linha(5 colunas) for(int i=0;i<totalColunas;i++){ //recupera dado coluna por coluna linhaCompleta[i] = table.getValueAt(table.getSelectedRow(),i); } //setando os dados coletados nos textFields //coluna 0 = nome ; 1=cpf; 2=agencia; 3=conta; 4=cartao nome.setText((String) linhaCompleta[0]); cpf.setText((String) linhaCompleta[1]); agencia.setText((String) linhaCompleta[2]); conta.setText((String) linhaCompleta[3]); cartao.setText((String) linhaCompleta[4]);
Feito isso, execute o programa e teste, inserindo uma linha e depois clicando sobre esta linha.
Agora precisamos determinar a ao do boto Alterar. Clique com o boto direito do mouse em cima do boto Alterar. Escolha as opes Add event handler Action Action Performed. Isso remeter ao cdigo fonte. Insira as seguintes linhas:
Execute o programa. Note que, caso no haja linha selecionada o programa no lanara nenhuma mensagem, pois no h exceo definida.
2. Exerccios de Fixao
1. Complete o programa exemplo inserindo aes para os botes Excluir (excluir uma linha selecionada), Salvar no BD (deve enviar os dados da tabela para o DAO (incluso no model) para que o mesmo os grave no banco de dados) e Recuperar do BD (dever entrar em contato com o DAO, receber os dados da tabela do banco de dados e mostr-los na tabela da interface grfica). Lembre-se de seguir o padro MVC, ou seja, comunicao View Model s atravs do Controller. 2. Substitua o TextField de Carto por um JComboBox com os seguintes itens: Visa, Mastercard, Aura, Hipercard, Diners Club e American Express. A tela deve continuar funcionando como anteriormente (inserindo, alterando, excluindo dados...), a nica modificao dever ser que, ao invs de recuperar o dado do campo cartao de um TextField , o dado dever ser recuperado deste comboBox. 3. Insira um boto Atualizar no BD e defina sua ao para que os dados atualizados na tabela tambm sejam atualizados no banco de dados.
Os
exerccios
podem
ser
feitos
em
dupla
entregues
professora
via
([email protected]) no formato .java ou .zip. Estes exerccios complementaro o conceito final de A2.