Olá tudo bem Espero que esteja maravilhosamente bem Hoje irei dar sequência aos vídeos práticos do projeto que está lá no github o simulador de leitura right Fit quem não viu o vídeo um veja e eu vou relembrar ele aqui um pouquinho porque Nós criamos lá o projeto no netbins eu mostrei que todo o projeto se inicia por uma classe principal que no nosso caso simulador leitor RF feed e tem sempre o método bem então aqui ele executa ele vai começar o nosso programa apresentando um texto na saída padrão mostrei isso no vídeo um também mostrei
lá que nós iremos utilizar o mvc que é um padrão de projeto e que ele constitui na divisão de código dos pacotes Model viu e controle mvc e vem a pergunta existe outra forma de criar aplicativos Java sem utilizar mvc existe e eu vou partir disso tá vou mostrar como se cria aqui no netbenço utilizando uma forma direta arrastando componentes mostrando as ações através de botões e depois a gente vai ver porque não criar de forma direta e porque utilizar mvc isso nós vamos ver no decorrer dos vídeos Então vamos lá vamos criar uma tela
aqui no netbeas de forma direta se é uma tela aonde eu vou criar o nosso projeto nas views nas interfaces nas interfaces tá então você vai clicar aqui com o botão direito novo e vai procurar por Jay frame forme que é um formulário Java atribua um nome no nosso caso eu vou colocar principal View por que que eu vou colocar viu na frente porque eu quero identificar ao trabalhar o que que é uma via o que que é um controle que é um modo lá na frente é uma nomenclatura um padrão para nomear classes Java
você pode definir o teu tá então com essa aqui é o nosso interface principal e ela é uma viu eu vou nomear dessa forma finaliza E aí o netbeans vai criar para ti já um formulário já pode ver que ele separa aqui em designer e tissot que é o código ele gera o código para vocês ó então aqui um código para iniciar componentes o método ele já vai definir layout entre outros ele cria também uma mem Por que que ele queria saber lembra que tudo começa por um Amém você pode executar essa interface principal de
forma direta pode ver que ele gera um netbeans com botãozinho de executar eu posso vir aqui ó clicar com o botão direito e executar arquivos veja bem que ele cria no ponto lá em cima tá por padrão no canto superior esquerdo tem outra forma de criar tem se você tá com designer aqui ó você pode manipular esse essa classe Java tá ó navegador tudo que quer para o netbeans inclusive as suas propriedades Jayme Eu quero mudar uma propriedade aqui que é a geração em vez lá do canto superior esquerdo eu vou mandar gerar no centro
todo componente tem propriedades vamos ver mais agora quando a gente começar a trabalhar tá então se eu executar de novo e esse arquivo ele já não executou lá em cima já alteramos a propriedade para executar no centro da tela e agora como que a gente vai alterando isso como que a gente vai melhorando essa interface arrastando o componentes veja do seu lado direito que existe a aba palhetas que são os componentes vamos arrastar aqui um pênis que é um fundo tá existem vários componentes você vai trabalhar com os melhores que se encaixa no seu projeto
pode arrastar ele para saber qual o tamanho da tela eu posso aumentar também o tamanho da tela Pode só aumentar o tamanho do formulário tá vendo mas eu vou trabalhar com esse tamanho depois a gente vai ajustando vamos fazendo aqui na prática que vai sair a gente vai melhorando tá Vamos alterar essa cor dele a cor de fundo desse painel através do que as propriedades Olha lá são várias uma delas a cor de fundo borda do tipo de texto A Cor do texto que vai aparecer nesse formulário Vamos alterar o background que é a cor
do fundo ao invés do padrão a gente vai usar um branco veja que já mudou olha aí vamos puxar outros componentes tem vários o que que eu preciso nesse projeto um componente que atribua a porta Então vou pegar um Label que é um texto fixo para um campo eu vou falar porta dois pontos se eu tenho uma porta eu preciso de que alguém informe que o usuário final informa essa porta através de Qual componente um campo de texto Field arrastei soltei poça alterar também trabalhar de forma livre veja que ele gera um nome automático esse
nome identifica esse componente porque porque no fundo tudo é uma variável uma variável Java então o nome dessa variáveis padrão aqui ó vem peixe Field 1 Vamos alterar o nome dela Clica com o botão direito no componente alterar o nome da variável como que eu coloco o nome do seu padrão você define para facilitar aqui eu vou colocar campo para definir que é um campo e o nome dele é um campo porta tudo que nós vamos criar vai ser um campo ele apresenta um texto padrão que é o nome dele eu posso também mudar isso
o botão direito Edith texto não vai aparecer quem vai digitar vai ser o usuário veja bem ficou uma tela com espaço enorme eu quero ajustar para o tamanho do componente você pode clicar no painel e duas vezes nas áreas de delimitação defu aqui ok já ajustou na vertical na horizontal a mesma coisa OK de full Opa ainda não devo ótimo viu Nossa telinha já criou um designer legal ajustável né vamos gerar isso daqui eu posso executar direto lembra por um pai ele já gerou para você mas veja bem no projeto não executo interface a interface
quem que deve chamar as interfaces é a classe principal do projeto que não é essa a classe principal Qual que é a simulador leitura refrite lembra que se eu executar essa classe ele vai mostrar na saída padrão esse texto que é o teste executar para vocês verem o que tá acontecendo executar o projeto agora fica com um projeto e na saída vai mostrar teste ele não mostrou a interface principal não é mesmo porque porque ela não está setada ele ignora esse arquivo é um arquivo como qualquer tá dentro do projeto mas não tá sendo usado
pelo projeto vamos chamar ele diretamente da nossa interface principal Como que eu faço isso tudo no Java tudo na orientação objeto é um objeto então nós temos uma classe que é classe principal viu que representa uma interface uma tela ele como é uma graça é um modelo tá vocês vão lá na orientação objeto vezes que todas as classes são modelos representa alguma coisa agora eu preciso trabalhar com objeto que é uma é um se acaso é um modelo genérico representa qualquer interface principal o objeto é o específico então ele mostra já atributos dessa interface principal
eu posso ter n objetos n representações instâncias de uma classe Como que eu faço isso com botão Neo com botão comando 1000 tá vamos lá New principal Então agora eu tô criando uma um objeto da classe view do instanciando esse objeto se ele está no Nosso principal o que que vai acontecer ele vai mostrar essa tela Mas será que ele vai mostrar essa tela vamos ver o que que vai acontecer quando executar eu posso vir com o botão direito para executar tá o projeto ou eu posso vir aqui direto em cima vamos fazer por aqui
que você já vem as duas formas executei a execução veio terminou e não mostrou nada por que que não mostrou nada vamos olhar esse código da principal novamente lembra que eu mostrei para vocês que o netbean Gera o código geram código Man propaganda classe e essa que mostra que começa por ela e ela que de fato desenvolve seu código né desenvolve em termos práticos de execução e dentro dela tem o sete vizinho que é um método que mostra visibilidade permite Então essa classe é visível verdadeiro se nós estamos chamando direto agora criando esse objeto nós
estamos chamando o Construtor dele veja bem dentro do Construtor tem o método que inicia os componentes que gera fisicamente todos esses componentes mas não tem o método que permite a visão desses componentes prontos porque porque essa meia que lá embaixo não tá sendo utilizado a gente pode até Apagar vamos Apagar e agora aqui no consultor ele vai gerar os componentes e o que após isso nós temos que falar que ela é uma interface visível 7 visible estamos reescrevendo que o Netflix fez para a gente outrora Tá bom vamos executar de novo executei o projeto ó
lá veio agora a principal viu como nós desenhamos ela deixa eu finalizar tem duas execuções aqui esse projeto só quer deixar com uma entenderam até aí sempre verifique se está sendo visível é um erro que sempre acontece beleza fizemos isso vamos mudar vamos brincar mais um pouquinho com aquela interface porque interface não só isso aqui não são Campos de entrada né Tem ações todo o programa tem seus botões como as crianças botões Vamos aumentar esse interface vamos lá na paleta e vamos procurar por um botão arrasta solta lembra que é uma variável eu posso mudar
o nome teu nome padrão Vou colocar aqui ó botão novo eu vou colocar esse nome novo como que eu edito o texto edito botão direito edita texto e novo novo se ajustar de novo essa interface vai ficar bonitinho legal até arrastar aqui para o lado para ficar alinhado ao componente ótimo tá mas se eu executar esse projeto de novo vamos executar e clicar em novo não acontece nada e como vocês podem perceber Nos programas todo novo ele limpa faz isso ele limpa O componente Russo componentes E por que que não tá acontecendo isso porque não
tem uma ação uma ação ao clicar nesse botão os componentes todos possuem várias ações você pode implementar essas ações como você faz isso aqui de forma Direto você vai clicar no botão e vai procurar por eventos olha lá um evento um Action e um perfume existem vários Como Eu mencionei mas aqui nós queremos pegar ao clicar no botão ao pressionar o botão novo selecionei e veja bem que o netbean já cria um código para você um método que fala Olha quando eu clicar nesse botão o que que eu tenho que fazer e onde ele cria
esse meço na principal o fio aqui vem a primeira questão da utilização do mvc Se nós formos criarmos n botões numentando essa tela que que vai acontecer esse código vai ficando todo Centralizado navio E aí quando você foi escalar aumentar esse projeto da manutenção nesse projeto você vai ver que vai saindo de conformidade do que que é orientação objeto vai dando trabalho para você escalar e dar manutenção e principalmente vai afetar nas premissas orientação objeto que é reuso e coesão esse código vai estar tudo aqui sendo feito tudo eu vou escrever todo código vai ficar
enorme e não vai ter objetos que fazem coisas específicas vai estar tudo navio uma classe Deus né uma God cresce que é o que nós tentamos evitar a todo o curso na orientação objeto porque senão fica não fica orientado objeto fica paradigma para você durar um código em sequência mas comprometido eu vou mostrar como se faz aqui e depois nós vamos adequar esse código para o mvc se eu cliquei novo o que que eu vou fazer vou alterar aquele Campo ele tem um texto né Possivelmente Então eu preciso acionar a variável dele vou falar como
que eu altero 7 testes é um método que eu altero atualizo o texto certo um novo texto para esse componente se eu quero limpar eu coloco um texto vazio então independente O que que ele tenha ao clicar no botão novo ele vai setar o texto para vazio vamos executar isso executei agora vou digitar eu vou clicar Olha lá agora um ovo tem uma ação essa ação esse evento chama o método que é aquele método e ele limpa a variável Campo texto que é um componente visual e vai fazer esse resultado visual que nós temos limpando
o campo Tá bom vamos criar mais um aqui para fixar mais um botão um designer vamos pegar um botão salvar né que sempre tem vamos arrastar botão direito editar e salvar Vamos criar um evento uma ação ao clicar ao apertar esse botão Olha lá viu que gerou um novo método meta também até nomeclatura aqui né não alteramos o nome desse componente aí colocou o nome padrão aqui já é o botão novo lembra Então se atentem isso porque se for usarem no futuro esse componente então ao clicar se eu no novo eu limpei o campo eu
sentei aqui para pegar é o get tá então vou criar aqui uma variável porta eu falar o seguinte ó porta vou pegar o get vou pegar o texto Então o que tiver lá pelo usuário escrito eu vou pegar e vou atribuir a variável porta e aí a gente pode mostrar por exemplo na saída padrão que nós já fizemos isso o resultado dessa porta vamos executar executei vamos digitar aqui a porta 3513 e vamos salvar Olha lá viu na saída padrão que ele mostrou Se eu colocar novo e executar não vai aparecer nada vamos dar outra
e salvar viu aquele mostrou uma linha vazia você conseguiu ver mas aquele mostrou já um valor que o usuário digitou mas eu já mostrei né como que a gente faz mas eu quero mostrar na tela não que a saída padrão usuário não vê tá ele vê o que que aparece na tela eu vou apresentar para vocês que ele vai montar uma interface uma telinha para vocês e vai mostrar um texto vamos usar aqui ó tem vários que vocês podem ver confio em dia logo eu vou colocar show atrelado uma uma interface um outro componente mas
vou colocar como número para vocês e vou colocar um texto que que eu posso colocar salvar mais aqui é concatenação tá e a porta Então vai mostrar o que salvar mais o que está na variável porta Alana eu posso também armazenar Isso numa base de dados eu posso criar código aqui para armazenar uma base de dados e uma finalidade situações está escrevendo um arquivo texto mandar para um api o que que foi eu posso fazer tudo nesse método tá mas aqui nós vamos mostrar para o usuário deixa eu fechar e vou executar de novo Então
vou digitar uma porta e vou clicar em salvar Olha lá ele mostrou a mensagem salvar e o número da porta Agora sim usuário está vendo e aí eu posso criar ele botões e escrevendo o código aqui como já expliquei não é o ideal por isso a necessidade do mvc que basicamente é é pegar esses eventos aqui e de legal invés de executar nessa interface nessa classe nós vamos executar lá na controle quem vai cuidar disso tudo não vai ser mais a interface principal a viu porque porque a viu o interesse dela é só mostrar os
componentes visuais ela não quer saber o que que fazer quando clicar no botão novo para limpar texto ela não quer saber disso porque não cabe ao componente visual ela não quer saber quando clicar no botão salvar o que que vai fazer você vai armazenar na base de dados Não é obrigação dela não é delegação dela então nós temos delegar isso para um outro objeto que é o objeto controle e aí começa a separação de código a especificação de código ao invés de nós trabalhamos tudo em uma graça Vamos trabalhar em várias classes e cada uma
com a sua responsabilidade Vamos ver isso na próxima aula no próximo vídeo muito obrigado Espero que seja útil para vocês e continuem acompanhando excelente dia abraço