Vous êtes sur la page 1sur 10

TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS LTP PROF.

HLDER SEIXAS LIMA ROTEIRO DE LABORATRIO CRUD COM SWING Parte 1 O objetivo deste roteiro de laboratrio praticar a criao de um CRUD (Create, Read, Update, Delete) utilizando a biblioteca de interface grfica Swing. Para tal, considere um CRUD que mantenha os dados de uma conta bancria (nmero, nome do cliente e saldo). O objetivo desenvolver uma tela semelhante ao prottipo abaixo:

O sistema deve atender aos seguintes requisitos: Todos os atributos de conta so obrigatrios; O saldo da conta no pode ser cadastrado com valor negativo; O valor do saldo no pode ser editado; O nmero da conta deve ser maior que zero; O sistema deve apresentar mscaras nos campos necessrios para melhorar a usabilidade do sistema. Siga os seguintes passos para desenvolvimento do roteiro: 1 Criar o projeto 1.1 Crie um projeto no NetBeans com o nome SistemaBancario; 1.2 No defina uma classe principal inicialmente. 2 Criar a classe de domnio 2.1 As classes de domnio so as classes que representam o contexto ou entidades do problema para o qual programa est sendo desenvolvido;

2.2 No nosso caso a nica classe de domnio ser a classe Conta; 2.3 Considere a classe conta feita na sala de aula, em uma aula anterior:

3 Criar a tela do CRUD 3.1 Criar um novo formulrio JFrame com o nome TelaCadastroConta; 3.2 Defina a propriedade title do JFrame com o valor Cadastro de Conta; 3.3 Defina a propriedade extendedState do JFrame o valor 6 para que a tela seja carregada no modo maximizado; 3.4 At o momento a tela tem o seguinte visual:

3.5 Acrescente os seguintes componentes na tela conforme as instrues e figura abaixo: 1 3 2 4 5 6 8 11 9 10

12 13 Item 1: Adicione um boto na tela com as seguintes propriedades: text = Nova Conta e nome da varivel = btnNovaConta. Item 2: Adicione um painel na tela com as seguintes propriedades: border = Borda de Ttulo->Ttulo->Dados de Conta e nome da varivel = pnlDadosConta. Item 3: Adicione um rtulo no pnlDadosConta com as seguintes propriedades: text = Nmero: e nome da varivel = lblNmero. Adicione um campo formatado com as seguintes propriedades: formatterFactory = Nmero->0 e nome da varivel = txtNumero. Item 4: Adicione um rtulo no pnlDadosConta com as seguintes propriedades: text = Nome do Cliente: e nome da varivel = lblNomeCliente. Adicione um campo de texto com as seguintes propriedades: nome da varivel = txtNomeCliente. Item 5: Adicione um rtulo no pnlDadosConta com as seguintes propriedades: text = Saldo (R$): e nome da varivel = txtSaldo. Adicione um campo formatado com as seguintes propriedades: formatterFactory = Nmero->#,##0.00 e nome da varivel = txtSaldo. Item 6: Adicione um boto no pnlDadosConta com as seguintes propriedades: text = Salvar e nome da varivel = btnSalvar. Item 7: Adicione um painel na tela com as seguintes propriedades: border = Borda de Ttulo->Ttulo->Contas Cadastradas e nome da varivel = pnlContasCadastradas. Item 8: Adicione um rtulo no pnlContasCadastradas com as seguintes propriedades: text = Nmero: e nome da varivel = lblNmero. Adicione um campo formatado com as seguintes propriedades: formatterFactory = Nmero->0 e nome da varivel = txtNumeroPesquisa. Item 9: Adicione um boto no pnlContasCadastradas com as seguintes propriedades: text = Pesquisar e nome da varivel = btnPesquisar. Item 10: Adicione um boto no pnlContasCadastradas com as seguintes propriedades: text = Exibir Todos e nome da varivel = btnExibirTodos. Item 11: Adicione uma tabela no pnlContasCadastradas com as seguintes propriedades: nome da varivel = tblContasCadastradas, selectionModel = Seleo nica e model conforme imagem abaixo:

Item 12: Adicione um boto no pnlContasCadastradas com as seguintes propriedades: text = Editar e nome da varivel = btnEditar. Item 13: Adicione um boto no pnlContasCadastradas com as seguintes propriedades: text = Excluir e nome da varivel = btnExcluir. 3.6 Aps todas estas configuraes a tela do CRUD est visualmente pronta. Os prximos passos ir definir cada funcionalidade prevista para o sistema. 4 Create Criar nova conta 4.1 Deseja-se que ao abrir a tela o sistema entre no modo Incluso de Conta, assim como quando o usurio acionar o boto Nova Conta. 4.2 O modo Incluso de Conta considera que todos os campos esto disponveis para edio e em branco. 4.3 Para isto, crie um mtodo na classe TelaCadastroConta que habilite os campos para edio conforme cdigo abaixo:

4.4 Para que a tela acione o modo Incluso de Conta toda vez que ela for iniciada devese adicionar uma chamada no mtodo no construtor da classe TelaCadastroConta. Veja exemplo no cdigo abaixo:

4.5 Configure o evento de clique no btnNovaConta para acionar o modo Incluso de Conta. Para tal, clique com o boto direito do mouse no btnNovaConta e siga os passos: Eventos->Action->actionPerformed e defina a chamada ao mtodo conforme

exemplo abaixo:

4.6 Ao de Salvar Conta 4.6.1 A parte mais complexa do modo Incluso de Conta armazenar as contas criadas. Considere que no ser persistido em banco de dados, sendo apenas necessrio armazenar na memria RAM do computador. 4.6.2 Os passos para salvar a conta verificar se todos os campos esto preenchidos corretamente e ento adicionar em um vetor de dados. 4.6.3 Para configurar o evento de salvar uma conta clique com o boto direito do mouse sobre o btnSalvar e siga os passos: Eventos->Action->actionPerformed e defina o seguinte cdigo: Define atributos para armazenar os objetos de Conta na memria

Mtodo chamado quando evento do btnSalvar disparado

4.7 Exibir contas cadastradas 4.7.1 O funcionamento da tela considera que cada nova conta criada ser exibida na tabela tblContasCadastradas. 4.7.2 Crie o mtodo que atualiza na tela os itens exibidos em tblConstaCadastradas. Veja o exemplo:

4.7.3 Adicione a chamada ao mtodo exibirTodasContasCadastradas no momento em que salvo com sucesso uma nova conta no mtodo btnSalvarActionPerformed. Veja o cdigo:

4.7.4 Adicione evento de clique no btnExibirTodos e tambm faa com que seja acionado o mtodo exibirTodasContasCadastradas. Veja o cdigo:

4.7.5 Neste momento j conseguimos visualizar as contas cadastradas. Confira na imagem abaixo:

5 Update Editando uma conta 5.1 Esta funcionalidade considera que o usurio ir selecionar uma linha na tblContasCadastradas e clicar no boto editar para iniciar o modo Edio de Conta. 5.2 No modo Edio de Conta o saldo no pode ser alterado, conforme regra de negcio definida. O mtodo que implementa este modo pode ser visto abaixo: necessrio definir um atributo que ir representar a conta que est em edio

Mtodo que define o modo Edio de Conta

5.3 Defina um mtodo que retorna o objeto da conta selecionada. Veja cdigo abaixo:

5.4 Defina o evento de clique do btnEditar para realizar a chamada do modo Edio de Conta, conforme cdigo abaixo:

5.5 Para armazenar os dados atualizados necessrio refatorar o evento de clique do btnSalvar. Veja o cdigo abaixo que considera os fluxos tanto de criao de conta como de edio:

5.6 Para tornar a tela mais dinmica vamos considerar a entrada no modo Edio de Conta apenas com um duplo clique numa linha da tabela. Para isto devemos clicar com o boto direito do mouse em tblContasCadastradas e acessar Eventos->Mouse>MouseClicked e definir o seguinte o cdigo abaixo:

5.7 Aps a implementao da edio dos dados temos como resultado a tela abaixo quando o usurio realiza um duplo clique em uma conta:

6 Alocao dinmica dos dados 6.1 At agora temos trabalhado com uma alocao esttica dos dados, pois, para armazenar os dado estamos utilizando um vetor com um nmero fixo de 100 posies. Isto implica que o nosso sistema est limitado em armazenar no mximo 100 contas. Para resolver este problema vamos passar a utilizar uma estrutura de dados de alocao dinmica. 6.2 A classe para resolver este nosso problema o ArrayList. Com ela poderemos cadastrar inmeras contas. 6.3 O primeiro passo remover o atributo quantidadeContasCadastradas que no mais necessrio e modificar o tipo do atributo contasCadastradas. Veja como fica o trecho de cdigo j utilizando o ArrayList:

6.4 O segundo passo corrigir os erros provocados por esta mudana. Veja alguns exemplos de mtodos importantes do ArrayList: Mtodo size: til para obter o nmero de itens armazenados num ArrayList. Ex.: contasCadastradas.size(); Mtodo get: til para retornar um objeto atravs do ndice do ArrayList. Ex.: contasCadastradas.get(0); Mtodo add: Adiciona um item ao ArrayList. Ex.: contasCadastradas.add(conta); Mtodo set: Altera um item do ArrayList em uma posio especfica. Ex.: this.contasCadastradas.set(i, conta); 6.5 Para auxiliar na correo dos defeitos veja como ficou o mtodo obterContaSelecionada com a modificao para ArrayList:

7 Delete Excluindo uma conta 7.1 A funcionalidade de excluso de uma conta considera que o usurio ir selecionar um item na tabela e acionar o btnExcluir. Para implementar esta funcionalidade devemos definir evento de clique no boto e definir o seguinte cdigo:

8 Pesquisando contas 8.1 O sistema proposto prev encontrar uma conta atravs do seu nmero. Para implementar a funcionalidade de pesquisa siga os prximos passos. 8.2 Defina um mtodo que exiba uma conta em tblContasCadastradas. Veja o cdigo abaixo:

8.3 Para finalizar, basta invocar o mtodo anteriormente criado no evento de clique no btnPesquisar. Veja o cdigo abaixo:

8.4 Agora podemos dizer que o nosso sistema est pronto. Fazendo tudo o que foi preestabelecido. 9 Melhorias no cdigo 9.1 O arquivo final da classe TelaCadastroConta ficou prximo de 530 linhas. Quanto maior o cdigo-fonte mais complexo ele fica e mais difcil ser sua manuteno. 9.2 Para melhorar a qualidade do cdigo devemos buscar onde h repetio de cdigo e encontrar alternativas para resolver tal problema. Faa isto! 10 Melhorias na usabilidade 10.1 O software resultante deste roteiro de laboratrio possui uma usabilidade razovel. Muito pode ser feito para torn-lo mais amigvel. Considere aprimorar os seguintes itens: 10.1.1 Navegao atravs da tecla TAB; 10.1.2 Teclas de atalho para os botes; 10.1.3 Utilizar mscaras mais eficientes para os campos; 10.1.4 Definir ToolTip para os componentes da tela; 10.1.5 Posicionar foco nos campos iniciais para agilizar edio do formulrio; 10.1.6 Enriquea a tela com um menu de opes e atalhos para acionar as funcionalidades da tela.

Vous aimerez peut-être aussi