·

Ciência da Computação ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Programação de Soluções Computacionais Prof Leandro Procópio Alves Aula 23 Agenda Interface gráfica Conexão banco de dados Exercício Projeto Autenticação Usuário Para iniciar nosso projeto vamos estruturar os pacotes para facilitar a identificação das classes 1 DAO Data Access Object 2 DTO Data Transfer Object 3 VIEW User Interface Intermediário com o banco de dados Faz conexão e transações com o banco Responsável por transferir dados Reduz a repetição de código Interagir com o usuário Projeto Autenticação Usuário Pacote VIEW Muitas IDEs fornecem ferramentas de design de GUI Especificar tamanho localização cor e outros atributos de um componente Caixas de Diálogos Classe JOptionPane Fornece caixas de diálogo préconstruídas tanto para entrada como para saída Devemos importar o pacote javaxswing Diálogo de entrada ShowInputDialog Diálogo de saída ShowMessageDialog Projeto Autenticação Usuário Pacote VIEW Componentes Swing javaxswing Pacote que contem os elementos básicos para a criação de uma GUI Componente principal JFrame Cria a janela contendo todos os controles para uma aplicação Métodos setTitleLeandro altera o título da janela setSizex y redimensiona a janela todas as medidas são em pixels setVisibletrue false exibe ou esconde a janela setDefaultCloseOperationFrame DISPOSEONCLOSE Destrói a janela libera recursos DONOTHINGONCLOSE Desabilita a opção HIDEONCLOSE Apenas esconde a janela EXITONCLOSE Encerra a aplicação Projeto Autenticação Usuário Pacote VIEW Componentes Swing JLabel Rótulos que exibem textos eou ícones Métodos setTextLeandro atribui valor ao label setVisibletrue false exibe ou esconde o label Projeto Autenticação Usuário Pacote VIEW Componentes Swing JTextField permite editar uma linha de texto Métodos setText String atribui valor ao JTextField String getText resgata valor contido no JTextField setVisible true false exibe ou esconde o JTextField setEditable true false torna o JTextField editável ou não boolean isEditable retorna se o JTextField é editável ou não Projeto Autenticação Usuário Pacote VIEW Componentes Swing JPasswordField permite editar uma linha de texto sem mostrar o texto Métodos char getPassword retorna cada caractere da senha digitada no JPasswordField Necessário guardar em uma String if new String jPasswordFieldgetPasswordequalsteste1 setEchoChar caracterecho define um caractere para ser exibido enquanto digita a senha Projeto Autenticação Usuário Pacote VIEW Componentes Swing JButton ativar ações através de cliques do usuário Métodos setText String atribui valor ao JButton setVisible true false exibe ou esconde o Jbutton setIcon Icon icon atribui um ícone ao JButton Projeto Autenticação Usuário Exercício Vamos criar um programa com interface gráfica para calcular as operações matemáticas básicas Projeto Autenticação Usuário Pacote VIEW Vamos criar nossa interface para autenticação do usuário No pacote VIEW vamos criar uma classe JFrame chamada de LoginVIEW Projeto Autenticação Usuário Pacote DTO Agora precisamos configurar uma classe UsuarioDTO para organizar as informações que passaremos ao banco Atributos int idusuario String nomeusuario String senhausuario Métodos Acessores Modificadores Projeto Autenticação Usuário Pacote VIEW Com a classe UsuarioDTO criada podemos passar as informações do usuário para DTO instanciando um objUsuarioDTO na VIEW ao clicar no botão entrar Projeto Autenticação Usuário Pacote DAO Para interagir com banco de dados precisamos em primeiro lugar criar uma classe de conexão Vamos chamala de ConexaoDAO com os seguintes atributos e métodos Atributos private String url jdbcmysqllocalhost3306banco private String nome root private String senha 1234 private Connection conn Método public Connection conectar try conn DriverManagergetConnection url nome senha JOptionPaneshowMessageDialognull Conectado com sucesso catch SQLException erro JOptionPaneshowMessageDialognull Erro de conexao ConexaoDAO erro return conn Criar a tabela banco no MySQL Pacote javasql Classe Interface DriverManager Driver Connection Statement ResultSet PreparedStatement Projeto Autenticação Usuário Pacote DAO Agora podemos criar uma classe que conterá os métodos necessários para autenticar o usuário No pacote DAO vamos criar uma classe UsuarioDAO com os seguintes atributos e métodos Atributos Connection conn Método public ResultSet autenticacaoUsuarioUsuarioDTO objusuariodto conn new ConexaoDAO conectar try String sql select from usuario Where nomeusuario and senhausuario PreparedStatement pstm connpreparedStatementsql pstmsetString1 objusuariodtogetNomeusuario pstmsetString2 objusuariodtogetSenhausuario ResultSet rs pstmexecuteQuery return rs catch SQLException erro JOptionPaneshowMessageDialognull Erro UsuarioDAO erro return null Deve ser igual a tabela no MySQL Projeto Autenticação Usuário Pacote VIEW Para fechar o ciclo será necessário incluir uma verificação se os dados que vieram do banco conferem com os dados informados pelo usuário Essa verificação pode ser incluída junto ao código criado no botão Entrar Método try código de relacionamento entre login e UsuarioDTO UsuarioDAO objusuariodao new UsuarioDAO ResultSet rsusuariodao objusuariodaoautenticacaoUsuarioobjusuariodto if rsusuariodaonext PrincipalVIEW objprincipalview new PrincipalVIEW objprincipalviewsetVisibletrue dispose else JOptionPaneshowMessageDialognull Usuário ou Senha Inválido catch SQLException erro JOptionPaneshowMessageDialognull Erro LoginVIEW erro Projeto Cadastrar Usuário Pacote VIEW Após ter concluído a autenticação podemos abrir uma nova janela AdministradorVIEW com os recursos disponíveis para aquele usuário Projeto Cadastrar Usuário JTable Projeto Cadastrar Usuário Pacote DTO Agora precisamos configurar uma classe FuncionarioDTO para organizar as informações que passaremos ao banco Atributos int idfuncionario String nomefuncionario String CPFfuncionário double salariofuncionário String senhausuario Métodos Acessores Modificadores Projeto Cadastrar Usuário Pacote VIEW Com a classe FuncionarioDTO criada podemos passar as informações do funcionario para DTO instanciando um objFuncionarioDTO na VIEW ao clicar no botão cadastrar Projeto Cadastrar Usuário Pacote DAO Agora podemos criar uma classe que conterá os métodos necessários para o CRUD No pacote DAO vamos criar uma classe FuncionarioDAO com os seguintes atributos e métodos Atributos Connection conn PreparedStatement pstm Método public void cadastrarFuncionarioFuncionarioDTO objfuncionariodto String sql insert into funcionário nomefuncionário CPFfuncionário salariofuncionário senhafuncionário values conn new ConexaoDAO conectar try pstm connpreparedStatementsql pstmsetString1 objFuncionarioDTOgetNomefuncionario pstmsetString2 objFuncionarioDTOgetCPFfuncionario pstmsetString3 StringvalueOfobjFuncionarioDTOgetSalariofuncionario pstmsetString4 objFuncionarioDTOgetSenhafuncionario pstmexecute pstmclose catch SQLException erro JOptionPaneshowMessageDialognull Erro FuncionarioDAO erro Projeto Cadastrar Usuário Pacote VIEW Para fechar o ciclo será necessário criar a lógica no botão cadastrar na VIEW Método private void cadastrar FuncionarioDTO objFuncionarioDTO new FuncionarioDTO objFuncionarioDTOsetNomefuncionariotxtnomeFuncionariogetText objFuncionarioDTOsetCPFfuncionariotxtcpfFuncionariogetText objFuncionarioDTOsetSalariofuncionarioDoubleparseDoubletxtsalarioFuncionariogetText objFuncionarioDTOsetSenhafuncionariotxtsenhaFuncionariogetText FuncionarioDAO objFuncionarioDAO new FuncionarioDAO objFuncionarioDAOcadastrarFuncionarioobjFuncionarioDTO modelinsertRowmodelgetRowCount new Objectnull txtnomeFuncionariogetText txtcpfFuncionariogetText txtsalarioFuncionariogetText txtsenhaFuncionariogetText