Logo Passei Direto
Buscar

Desenvolvimento de Aplicação Java

User badge image
Arlin Mafra

em

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>Centro Universitário Jorge Amado</p><p>Sistemas de Informação</p><p>Salvador</p><p>2024</p><p>Programação Orientada a Objetos II</p><p>Tarefa 2</p><p>Docente: Igor Gonzalez Pimenta</p><p>Aluno: Arlin César Mafra</p><p>Índice</p><p>Introdução...............................................................................................................................4</p><p>Codificação das Classes....................................................................................................... 5</p><p>Casse Carro............................................................................................................................ 5</p><p>CarroDAO................................................................................................................................8</p><p>ConexaoBD........................................................................................................................... 11</p><p>Tela de Cadastro...................................................................................................................13</p><p>Tela de Dados....................................................................................................................... 21</p><p>Resultados Obtidos............................................................................................................. 29</p><p>Conclusão.............................................................................................................................31</p><p>Referência.............................................................................................................................32</p><p>Introdução</p><p>O presente trabalho tem como objetivo o desenvolvimento de uma aplicação</p><p>em Java, utilizando conceitos de Programação Orientada a Objetos (POO), para o</p><p>controle de carros de um estacionamento. A aplicação foi projetada para manipular</p><p>dados de veículos, incluindo operações de inclusão, alteração, exclusão e listagem,</p><p>utilizando a API JDBC para integração com um banco de dados Access. O foco</p><p>principal é garantir uma interface gráfica amigável para o usuário, permitindo a</p><p>gestão eficiente do fluxo de veículos no estacionamento.</p><p>Durante o desenvolvimento, foram exploradas técnicas de conexão com</p><p>banco de dados, manipulação de dados através de consultas SQL e implementação</p><p>de funcionalidades essenciais, como inserção e modificação de registros. A</p><p>aplicação foi estruturada em torno de classes específicas, como Carro, CarroDAO e</p><p>ConexaoBD, assegurando que o código seja modular, flexível e fácil de manter.</p><p>Codificação das Classes</p><p>Casse Carro</p><p>package com.unijorge.prog2.ava2;</p><p>public class Carro {</p><p>private int id;</p><p>private String marca;</p><p>private String placa;</p><p>private String cor;</p><p>private int horaEntrada;</p><p>private int horaSaida;</p><p>// Construtores</p><p>public Carro() {</p><p>}</p><p>public Carro(String marca, String placa) {</p><p>this.marca = marca;</p><p>this.placa = placa;</p><p>}</p><p>public Carro(String marca, String placa, String cor) {</p><p>this.marca = marca;</p><p>this.placa = placa;</p><p>this.cor = cor;</p><p>}</p><p>public Carro(String marca, String placa, int horaEntrada, int horaSaida) {</p><p>this.marca = marca;</p><p>this.placa = placa;</p><p>this.horaEntrada = horaEntrada;</p><p>this.horaSaida = horaSaida;</p><p>}</p><p>public Carro(String marca, String placa, String cor, int horaEntrada, int horaSaida)</p><p>{</p><p>this.marca = marca;</p><p>this.placa = placa;</p><p>this.cor = cor;</p><p>this.horaEntrada = horaEntrada;</p><p>this.horaSaida = horaSaida;</p><p>}</p><p>// Getters e Setters</p><p>public int getId() {</p><p>return id;</p><p>}</p><p>public void setId(int id) {</p><p>this.id = id;</p><p>}</p><p>public String getMarca() {</p><p>return marca;</p><p>}</p><p>public void setMarca(String marca) {</p><p>this.marca = marca;</p><p>}</p><p>public String getPlaca() {</p><p>return placa;</p><p>}</p><p>public void setPlaca(String placa) {</p><p>this.placa = placa;</p><p>}</p><p>public String getCor() {</p><p>return cor;</p><p>}</p><p>public void setCor(String cor) {</p><p>this.cor = cor;</p><p>}</p><p>public int getHoraEntrada() {</p><p>return horaEntrada;</p><p>}</p><p>public void setHoraEntrada(int horaEntrada) {</p><p>this.horaEntrada = horaEntrada;</p><p>}</p><p>public int getHoraSaida() {</p><p>return horaSaida;</p><p>}</p><p>public void setHoraSaida(int horaSaida) {</p><p>this.horaSaida = horaSaida;</p><p>}</p><p>}</p><p>CarroDAO</p><p>package com.unijorge.prog2.ava2;</p><p>import java.sql.*;</p><p>import javax.swing.JOptionPane;</p><p>public class CarroDAO {</p><p>public boolean adicionar(Carro carro) {</p><p>// Cria o objeto para a conexão</p><p>ConexaoBD acesso = new ConexaoBD();</p><p>if (acesso.conectar()) {</p><p>try {</p><p>String consulta = "INSERT INTO carros (placa, marca, cor, horaEntrada,</p><p>horaSaida) "</p><p>+ "VALUES ('" + carro.getPlaca() + "','"</p><p>+ carro.getMarca() + "','" + carro.getCor() + "',"</p><p>+ carro.getHoraEntrada() + "," + carro.getHoraSaida() + ")";</p><p>Statement st = acesso.con.createStatement();</p><p>st.executeUpdate(consulta);</p><p>} catch (Exception e) {</p><p>e.printStackTrace();</p><p>String mensagem = "Carro não Incluído!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>return false;</p><p>}</p><p>}</p><p>acesso.desconectar();</p><p>return true;</p><p>}</p><p>public Carro buscarCarro(int id) {</p><p>ConexaoBD conexao = new ConexaoBD();</p><p>Carro carro = new Carro();</p><p>ResultSet rs;</p><p>if (conexao.conectar()) {</p><p>try {</p><p>String consulta = "select * from carros where id="</p><p>+ String.valueOf(id).trim();</p><p>PreparedStatement stm = conexao.con.prepareStatement(consulta);</p><p>rs = stm.executeQuery();</p><p>if (rs.next()) {</p><p>if (Integer.parseInt(rs.getString("id")) > 0) {</p><p>carro.setId(Integer.parseInt(rs.getString("id")));</p><p>carro.setPlaca(rs.getString("placa"));</p><p>carro.setMarca(rs.getString("marca"));</p><p>carro.setCor(rs.getString("cor"));</p><p>carro.setHoraEntrada(rs.getInt("horaEntrada"));</p><p>carro.setHoraSaida(rs.getInt("horaSaida"));</p><p>}</p><p>}</p><p>} catch (Exception e) {</p><p>e.printStackTrace();</p><p>String mensagem = "Carro não Encontrado!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>return null;</p><p>}</p><p>}</p><p>conexao.desconectar();</p><p>return carro;</p><p>}</p><p>public boolean alterar(Carro carro) {</p><p>ConexaoBD acesso = new ConexaoBD();</p><p>if (acesso.conectar()) {</p><p>try {</p><p>String consulta = "UPDATE carros SET placa = ?, marca = ?, cor = ?,</p><p>horaEntrada = ?, horaSaida = ? WHERE id = ?";</p><p>PreparedStatement st = acesso.con.prepareStatement(consulta);</p><p>st.setString(1, carro.getPlaca());</p><p>st.setString(2, carro.getMarca());</p><p>st.setString(3, carro.getCor());</p><p>st.setInt(4, carro.getHoraEntrada());</p><p>st.setInt(5, carro.getHoraSaida());</p><p>st.setInt(6, carro.getId());</p><p>// Executa a consulta</p><p>st.executeUpdate();</p><p>} catch (Exception e) {</p><p>// Informa caso a operação não tenha obtido sucesso</p><p>e.printStackTrace();</p><p>String mensagem = "Carro não Alterado!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>return false;</p><p>} finally {</p><p>acesso.desconectar();</p><p>}</p><p>}</p><p>return true;</p><p>}</p><p>boolean excluir(Carro carro) {</p><p>ConexaoBD acesso = new ConexaoBD();</p><p>if (acesso.conectar()) {</p><p>try {</p><p>String consulta = "DELETE from carros WHERE id=" + carro.getId();</p><p>Statement st = acesso.con.createStatement();</p><p>st.executeUpdate(consulta);</p><p>} catch (Exception e) {</p><p>e.printStackTrace();</p><p>String mensagem = "Carro não Excluído!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>return false;</p><p>}</p><p>}</p><p>acesso.desconectar();</p><p>return true;</p><p>}</p><p>public boolean listarCarros() {</p><p>ConexaoBD acesso = new ConexaoBD();</p><p>Carro carro = new Carro();</p><p>ResultSet rs;</p><p>if (acesso.conectar()) {</p><p>try {</p><p>String mensagem = "O resultado será exibido no ambiente de execução</p><p>em modo texto!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>String consulta = "SELECT * FROM carros";</p><p>PreparedStatement stm = acesso.con.prepareStatement(consulta);</p><p>rs = stm.executeQuery();</p><p>// Cabeçalho da tabela</p><p>String linha = String.format("%-5s | %-10s | %-10s | %-10s | %-15s |</p><p>%-15s",</p><p>"Id", "Placa", "Marca", "Cor", "Hora Entrada", "Hora Saída");</p><p>System.out.println(linha);</p><p>System.out.println("---------------------------------------------------------------------");</p><p>// Itera pelos resultados e imprime os carros</p><p>while (rs.next()) {</p><p>carro.setId(rs.getInt("id"));</p><p>carro.setPlaca(rs.getString("placa"));</p><p>carro.setMarca(rs.getString("marca"));</p><p>carro.setCor(rs.getString("cor"));</p><p>carro.setHoraEntrada(rs.getInt("horaEntrada"));</p><p>carro.setHoraSaida(rs.getInt("horaSaida"));</p><p>// Imprime os valores formatados</p><p>linha = String.format("%-5d | %-10s | %-10s | %-10s | %-15d | %-15d",</p><p>rs.getInt("id"),</p><p>rs.getString("placa"),</p><p>rs.getString("marca"),</p><p>rs.getString("cor"),</p><p>rs.getInt("horaEntrada"),</p><p>rs.getInt("horaSaida"));</p><p>System.out.println(linha);</p><p>}</p><p>} catch (Exception e) {</p><p>e.printStackTrace();</p><p>System.out.println("Lista não Gerada!");</p><p>return false;</p><p>} finally {</p><p>acesso.desconectar();</p><p>}</p><p>}</p><p>return true;</p><p>}</p><p>}</p><p>ConexaoBD</p><p>package com.unijorge.prog2.ava2;</p><p>import java.io.File;</p><p>import java.sql.Connection;</p><p>import java.sql.DriverManager;</p><p>import java.sql.SQLException;</p><p>import javax.swing.JOptionPane;</p><p>public class ConexaoBD {</p><p>Connection con = null;</p><p>public boolean conectar() {</p><p>try {</p><p>String nomeArquivo = "///home/arlin/Downloads/Aula.accdb";</p><p>// Tenta abrir o arquivo.</p><p>File arquivo = new File(nomeArquivo);</p><p>if (!arquivo.exists()) {</p><p>String mensagem = "Arquivo: " + nomeArquivo.trim() + " não encontrado!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>} else {</p><p>String mensagem = "Arquivo: " + nomeArquivo.trim() + " encontrado!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>// Definição do driver de acesso e do arquivo</p><p>String database = "jdbc:ucanaccess://" + nomeArquivo.trim();</p><p>// Executa a conexão com o banco de dados</p><p>// Caso não consiga realizar a conexão, uma exceção será lançada</p><p>con = DriverManager.getConnection(database);</p><p>// Verifica se a conexão foi bem-sucedida</p><p>if (con != null) {</p><p>JOptionPane.showMessageDialog(null, "Conexão realizada com</p><p>sucesso!");</p><p>return true;</p><p>} else {</p><p>JOptionPane.showMessageDialog(null, "Falha ao realizar a conexão!");</p><p>return false;</p><p>}</p><p>} catch (Exception e) { // trata a exceção se houver</p><p>e.printStackTrace();</p><p>return false;</p><p>}</p><p>}</p><p>// Método para encerrar a conexão e retornar se a</p><p>// operação foi realizada com sucesso</p><p>public boolean desconectar() {</p><p>try {</p><p>if (con != null && !con.isClosed()) {</p><p>con.close();</p><p>JOptionPane.showMessageDialog(null, "Conexão encerrada com</p><p>sucesso!");</p><p>return true;</p><p>}</p><p>} catch (SQLException e) {</p><p>e.printStackTrace();</p><p>JOptionPane.showMessageDialog(null, "Erro ao desconectar: " +</p><p>e.getMessage());</p><p>}</p><p>return false;</p><p>}</p><p>}</p><p>Tela de Cadastro</p><p>package com.unijorge.prog2.ava2;</p><p>import java.awt.Font;</p><p>import java.sql.ResultSet;</p><p>import java.sql.PreparedStatement;</p><p>import java.util.ArrayList;</p><p>import javax.swing.JOptionPane;</p><p>public class TelaCadastro extends javax.swing.JFrame {</p><p>ConexaoBD conexao = new ConexaoBD();</p><p>ResultSet rs;</p><p>public TelaCadastro() {</p><p>initComponents();</p><p>btnConectar.setEnabled(true);</p><p>btnDesconectar.setEnabled(false);</p><p>btnAlterar.setEnabled(false);</p><p>btnExcluir.setEnabled(false);</p><p>btnInserir.setEnabled(false);</p><p>btnGerarListagem.setEnabled(false);</p><p>btnPreencherLista.setEnabled(false);</p><p>btnSair.setEnabled(true);</p><p>lista.setEnabled(false);</p><p>}</p><p>@SuppressWarnings("unchecked")</p><p>// <editor-fold defaultstate="collapsed" desc="Generated Code"></p><p>private void initComponents() {</p><p>btnConectar = new javax.swing.JButton();</p><p>btnDesconectar = new javax.swing.JButton();</p><p>btnSair = new javax.swing.JButton();</p><p>btnInserir = new javax.swing.JButton();</p><p>btnAlterar = new javax.swing.JButton();</p><p>btnExcluir = new javax.swing.JButton();</p><p>btnGerarListagem = new javax.swing.JButton();</p><p>jScrollPane1 = new javax.swing.JScrollPane();</p><p>lista = new javax.swing.JList<>();</p><p>btnPreencherLista = new javax.swing.JButton();</p><p>setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);</p><p>btnConectar.setText("Conectar Banco");</p><p>btnConectar.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnConectarActionPerformed(evt);</p><p>}</p><p>});</p><p>btnDesconectar.setText("Desconectar Banco");</p><p>btnDesconectar.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnDesconectar(evt);</p><p>}</p><p>});</p><p>btnSair.setText("Sair");</p><p>btnSair.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnSairActionPerformed(evt);</p><p>}</p><p>});</p><p>btnInserir.setText("Inserir");</p><p>btnInserir.setActionCommand("btnInserir");</p><p>btnInserir.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnInserirActionPerformed(evt);</p><p>}</p><p>});</p><p>btnAlterar.setText("Alterar");</p><p>btnAlterar.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnAlterarActionPerformed(evt);</p><p>}</p><p>});</p><p>btnExcluir.setText("Excluir");</p><p>btnExcluir.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnExcluirActionPerformed(evt);</p><p>}</p><p>});</p><p>btnGerarListagem.setText("Gerar Listagem");</p><p>btnGerarListagem.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnGerarListagemActionPerformed(evt);</p><p>}</p><p>});</p><p>lista.setModel(new javax.swing.AbstractListModel<String>() {</p><p>String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };</p><p>public int getSize() { return strings.length; }</p><p>public String getElementAt(int i) { return strings[i]; }</p><p>});</p><p>jScrollPane1.setViewportView(lista);</p><p>btnPreencherLista.setText("Preencher Lista");</p><p>btnPreencherLista.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnPreencherListaActionPerformed(evt);</p><p>}</p><p>});</p><p>javax.swing.GroupLayout layout = new</p><p>javax.swing.GroupLayout(getContentPane());</p><p>getContentPane().setLayout(layout);</p><p>layout.setHorizontalGroup(</p><p>layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addGap(19, 19, 19)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILIN</p><p>G)</p><p>.addGroup(javax.swing.GroupLayout.Alignment.LEADING,</p><p>layout.createSequentialGroup()</p><p>.addComponent(btnInserir)</p><p>.addGap(46, 46, 46)</p><p>.addComponent(btnAlterar)</p><p>.addGap(40, 40, 40)</p><p>.addComponent(btnExcluir)</p><p>.addGap(39, 39, 39)</p><p>.addComponent(btnGerarListagem)</p><p>.addGap(0, 0, Short.MAX_VALUE))</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addGap(0, 0, Short.MAX_VALUE)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILIN</p><p>G)</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addComponent(btnConectar)</p><p>.addGap(157, 157, 157)</p><p>.addComponent(btnDesconectar)</p><p>.addGap(173, 173, 173)</p><p>.addComponent(btnSair))</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addComponent(btnPreencherLista,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE, 206,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE)</p><p>.addGap(82, 82, 82)</p><p>.addComponent(jScrollPane1,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE, 551,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE)))))</p><p>.addGap(35, 35, 35))</p><p>);</p><p>layout.setVerticalGroup(</p><p>layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addGap(22, 22, 22)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(btnConectar)</p><p>.addComponent(btnDesconectar)</p><p>.addComponent(btnSair))</p><p>.addGap(94, 94, 94)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN</p><p>G)</p><p>.addComponent(btnPreencherLista)</p><p>.addComponent(jScrollPane1,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE, 215,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 73,</p><p>Short.MAX_VALUE)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(btnInserir)</p><p>.addComponent(btnAlterar)</p><p>.addComponent(btnExcluir)</p><p>.addComponent(btnGerarListagem))</p><p>.addGap(15, 15, 15))</p><p>);</p><p>pack();</p><p>}// </editor-fold></p><p>private void btnConectarActionPerformed(java.awt.event.ActionEvent evt) {</p><p>if (conexao.conectar()) {</p><p>btnConectar.setEnabled(false);</p><p>btnDesconectar.setEnabled(true);</p><p>btnAlterar.setEnabled(false);</p><p>btnExcluir.setEnabled(false);</p><p>btnInserir.setEnabled(false);</p><p>btnGerarListagem.setEnabled(false);</p><p>btnPreencherLista.setEnabled(true);</p><p>btnSair.setEnabled(false);</p><p>lista.setEnabled(false);</p><p>}</p><p>}</p><p>private void btnDesconectar(java.awt.event.ActionEvent evt) {</p><p>if (conexao.desconectar()) {</p><p>btnConectar.setEnabled(true);</p><p>btnDesconectar.setEnabled(false);</p><p>btnAlterar.setEnabled(false);</p><p>btnExcluir.setEnabled(false);</p><p>btnInserir.setEnabled(false);</p><p>btnGerarListagem.setEnabled(false);</p><p>btnPreencherLista.setEnabled(false);</p><p>btnSair.setEnabled(true);</p><p>lista.setEnabled(false);;</p><p>}</p><p>}</p><p>private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {</p><p>this.dispose();</p><p>// encerra a aplicação</p><p>System.exit(0);</p><p>}</p><p>private void btnInserirActionPerformed(java.awt.event.ActionEvent evt) {</p><p>TelaDados tdados = new TelaDados(1, 0);</p><p>tdados.setVisible(true);</p><p>btnConectar.setEnabled(false);</p><p>btnDesconectar.setEnabled(true);</p><p>btnAlterar.setEnabled(false);</p><p>btnExcluir.setEnabled(false);</p><p>btnInserir.setEnabled(false);</p><p>btnGerarListagem.setEnabled(false);</p><p>btnPreencherLista.setEnabled(true);</p><p>btnSair.setEnabled(false);</p><p>lista.setEnabled(false);</p><p>}</p><p>private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {</p><p>if (lista.getSelectedIndex() != 0) {</p><p>String id = lista.getSelectedValue().substring(0, 3);</p><p>if (Integer.parseInt(id.trim()) <= 0) {</p><p>String mensagem = "Opção inválida!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>TelaDados tdados = new TelaDados(2, Integer.parseInt(id.trim()));</p><p>tdados.setVisible(true);</p><p>// Configura os comonentes que serão liberados ou restringidos</p><p>btnConectar.setEnabled(false);</p><p>btnDesconectar.setEnabled(true);</p><p>btnAlterar.setEnabled(false);</p><p>btnExcluir.setEnabled(false);</p><p>btnInserir.setEnabled(false);</p><p>btnGerarListagem.setEnabled(false);</p><p>btnPreencherLista.setEnabled(true);</p><p>btnSair.setEnabled(false);</p><p>lista.setEnabled(false);</p><p>} else {</p><p>String mensagem = "Opção inválida!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>}</p><p>private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {</p><p>if (lista.getSelectedIndex() != 0) {</p><p>String id = lista.getSelectedValue().substring(0, 3);</p><p>if (Integer.parseInt(id.trim()) <= 0) {</p><p>String mensagem = "Opção inválida!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>TelaDados tdados = new TelaDados(3, Integer.parseInt(id.trim()));</p><p>tdados.setVisible(true);</p><p>btnConectar.setEnabled(false);</p><p>btnDesconectar.setEnabled(true);</p><p>btnAlterar.setEnabled(false);</p><p>btnExcluir.setEnabled(false);</p><p>btnInserir.setEnabled(false);</p><p>btnGerarListagem.setEnabled(false);</p><p>btnPreencherLista.setEnabled(true);</p><p>btnSair.setEnabled(false);</p><p>lista.setEnabled(false);</p><p>} else {</p><p>String mensagem = "Opção inválida!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>}</p><p>private void btnGerarListagemActionPerformed(java.awt.event.ActionEvent evt) {</p><p>CarroDAO carroDao = new CarroDAO();</p><p>if (!carroDao.listarCarros()) {</p><p>String mensagem = "Listagem Não Gerada!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>}</p><p>private void btnPreencherListaActionPerformed(java.awt.event.ActionEvent evt) {</p><p>if (preencherLista()) {</p><p>btnConectar.setEnabled(false);</p><p>btnDesconectar.setEnabled(true);</p><p>btnAlterar.setEnabled(true);</p><p>btnExcluir.setEnabled(true);</p><p>btnInserir.setEnabled(true);</p><p>btnGerarListagem.setEnabled(true);</p><p>btnPreencherLista.setEnabled(false);</p><p>btnSair.setEnabled(false);</p><p>lista.setEnabled(true);</p><p>}</p><p>}</p><p>public boolean preencherLista() {</p><p>try {</p><p>String consulta = "select * from carros";</p><p>PreparedStatement stm = conexao.con.prepareStatement(consulta);</p><p>rs = stm.executeQuery();</p><p>ArrayList<String> ar = new ArrayList();</p><p>String linha = String.format("%-5s | %-10s | %-10s | %-10s | %-15s | %-15s",</p><p>"Id", "Placa", "Marca", "Cor", "Hora de Entrada", "Hora de Saída");</p><p>// Adiciona a linha ao ArrayList</p><p>ar.add(linha);</p><p>while (rs.next()) {</p><p>linha = String.format("%-5s | %-10s | %-10s | %-10s | %-15s | %-15s",</p><p>rs.getInt("id"),</p><p>rs.getString("placa"), rs.getString("marca"),</p><p>rs.getString("cor"), rs.getInt("horaEntrada"), rs.getInt("horaSaida"));</p><p>ar.add(linha);</p><p>}</p><p>String vet[] = new String[ar.size()];</p><p>// Carrega todos os elementos do ArrayList no vetor</p><p>for (int i = 0; i < ar.size(); i++) {</p><p>vet[i] = ar.get(i);</p><p>}</p><p>lista.setFont(new Font("Courier New", Font.PLAIN, 11));</p><p>// Inclui os elemento do vetor no JList</p><p>lista.setListData(vet);</p><p>lista.setSelectedIndex(1);</p><p>return true;</p><p>} catch (Exception e) {</p><p>String mensagem = "Exceção! Lista não preenchida!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>return false;</p><p>}</p><p>}</p><p>/**</p><p>* @param args the command line arguments</p><p>*/</p><p>public static void main(String args[]) {</p><p>/* Create and display the form */</p><p>java.awt.EventQueue.invokeLater(new Runnable() {</p><p>public void run() {</p><p>new TelaCadastro().setVisible(true);</p><p>}</p><p>});</p><p>}</p><p>// Variables declaration - do not modify</p><p>private javax.swing.JButton btnAlterar;</p><p>private javax.swing.JButton btnConectar;</p><p>private javax.swing.JButton btnDesconectar;</p><p>private javax.swing.JButton btnExcluir;</p><p>private javax.swing.JButton btnGerarListagem;</p><p>private javax.swing.JButton btnInserir;</p><p>private javax.swing.JButton btnPreencherLista;</p><p>private javax.swing.JButton btnSair;</p><p>private javax.swing.JScrollPane jScrollPane1;</p><p>private javax.swing.JList<String> lista;</p><p>// End of variables declaration</p><p>}</p><p>Tela de Dados</p><p>package com.unijorge.prog2.ava2;</p><p>import java.awt.Font;</p><p>import javax.swing.JOptionPane;</p><p>public class TelaDados extends javax.swing.JFrame {</p><p>int operacao;</p><p>int id;</p><p>// Construtor da janela alterado para receber o tipo de operação (1, 2 ou 3)</p><p>// e o id do registro no banco, se id = 0 é uma inclusão</p><p>public TelaDados(int operacao, int id) {</p><p>initComponents();</p><p>this.operacao = operacao;</p><p>this.id = id;</p><p>tfPlaca.setText("");</p><p>tfMarca.setText("");</p><p>tfCor.setText("");</p><p>tfHoraEntrada.setText("0");</p><p>tfHoraSaida.setText("0");</p><p>// Altera a fonte do Label de Título da janela</p><p>lb1.setFont(new Font("Times Roman", Font.PLAIN, 14));</p><p>if (operacao == 1) {</p><p>lb1.setText("Inclusão");</p><p>}</p><p>if (operacao == 2) {</p><p>lb1.setText("Alteração");</p><p>Carro carro = new Carro();</p><p>CarroDAO carroDao = new CarroDAO();</p><p>carro = carroDao.buscarCarro(id);</p><p>tfPlaca.setText(carro.getPlaca());</p><p>tfMarca.setText(carro.getMarca());</p><p>tfCor.setText(carro.getCor());</p><p>tfHoraEntrada.setText(String.valueOf(carro.getHoraEntrada()));</p><p>tfHoraSaida.setText(String.valueOf(carro.getHoraSaida()));</p><p>}</p><p>if (operacao == 3) {</p><p>lb1.setText("Exclusão");</p><p>Carro carro = new Carro();</p><p>CarroDAO carroDao = new CarroDAO();</p><p>carro = carroDao.buscarCarro(id);</p><p>tfPlaca.setText(String.valueOf(carro.getPlaca()));</p><p>tfMarca.setText(carro.getMarca());</p><p>tfCor.setText(carro.getCor());</p><p>tfHoraEntrada.setText(String.valueOf(carro.getHoraEntrada()));</p><p>tfHoraSaida.setText(String.valueOf(carro.getHoraSaida()));</p><p>}</p><p>}</p><p>/**</p><p>* O conteúdo a seguir foi gerado pelo NetBeans na criação da tela e não</p><p>* pode ser alterado.</p><p>*/</p><p>@SuppressWarnings("unchecked")</p><p>// <editor-fold defaultstate="collapsed" desc="Generated Code"></p><p>private void initComponents() {</p><p>btConfirmar = new javax.swing.JButton();</p><p>btCancelar = new javax.swing.JButton();</p><p>lb2 = new javax.swing.JLabel();</p><p>lb3 = new javax.swing.JLabel();</p><p>lb4 = new javax.swing.JLabel();</p><p>tfPlaca = new javax.swing.JTextField();</p><p>tfMarca = new javax.swing.JTextField();</p><p>tfCor = new javax.swing.JTextField();</p><p>lb1 = new javax.swing.JLabel();</p><p>lb5 = new javax.swing.JLabel();</p><p>tfHoraEntrada = new javax.swing.JTextField();</p><p>lb6 = new javax.swing.JLabel();</p><p>tfHoraSaida = new javax.swing.JTextField();</p><p>setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);</p><p>btConfirmar.setText("Confirmar");</p><p>btConfirmar.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btConfirmarActionPerformed(evt);</p><p>}</p><p>});</p><p>btCancelar.setText("Cancelar");</p><p>btCancelar.addActionListener(new java.awt.event.ActionListener() {</p><p>public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btCancelarActionPerformed(evt);</p><p>}</p><p>});</p><p>lb2.setText("Placa");</p><p>lb3.setText("Marca");</p><p>lb4.setText("Cor");</p><p>tfPlaca.setText("jTextField1");</p><p>tfMarca.setText("jTextField2");</p><p>tfCor.setText("jTextField3");</p><p>lb1.setText("jLabel4");</p><p>lb5.setText("Hora de Entrada");</p><p>tfHoraEntrada.setText("jTextField4");</p><p>lb6.setText("Hora de Saída");</p><p>tfHoraSaida.setText("jTextField5");</p><p>javax.swing.GroupLayout layout = new</p><p>javax.swing.GroupLayout(getContentPane());</p><p>getContentPane().setLayout(layout);</p><p>layout.setHorizontalGroup(</p><p>layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addGap(40, 40, 40)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN</p><p>G, false)</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addComponent(btConfirmar)</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 245,</p><p>Short.MAX_VALUE)</p><p>.addComponent(btCancelar))</p><p>.addGroup(layout.createSequentialGroup()</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILIN</p><p>G)</p><p>.addComponent(lb3)</p><p>.addComponent(lb2)</p><p>.addComponent(lb4)</p><p>.addComponent(lb5)</p><p>.addComponent(lb6))</p><p>.addGap(41, 41, 41)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN</p><p>G)</p><p>.addComponent(lb1)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILIN</p><p>G, false)</p><p>.addComponent(tfCor,</p><p>javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(tfHoraEntrada,</p><p>javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(tfHoraSaida,</p><p>javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(tfMarca,</p><p>javax.swing.GroupLayout.Alignment.LEADING,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE, 214,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE)</p><p>.addComponent(tfPlaca,</p><p>javax.swing.GroupLayout.Alignment.LEADING,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE, 279,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE)))))</p><p>.addContainerGap(106, Short.MAX_VALUE))</p><p>);</p><p>layout.setVerticalGroup(</p><p>layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,</p><p>layout.createSequentialGroup()</p><p>.addGap(21, 21, 21)</p><p>.addComponent(lb1)</p><p>.addGap(72, 72, 72)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(lb2)</p><p>.addComponent(tfPlaca, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addGap(18, 18, 18)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(lb3)</p><p>.addComponent(tfMarca,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addGap(22, 22, 22)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(lb4)</p><p>.addComponent(tfCor, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(lb5)</p><p>.addComponent(tfHoraEntrada,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addGap(18, 18, 18)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(lb6)</p><p>.addComponent(tfHoraSaida,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 95,</p><p>Short.MAX_VALUE)</p><p>.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI</p><p>NE)</p><p>.addComponent(btConfirmar)</p><p>.addComponent(btCancelar))</p><p>.addGap(29, 29, 29))</p><p>);</p><p>pack();</p><p>}// </editor-fold></p><p>// Método do botão de Confirmação</p><p>private void btConfirmarActionPerformed(java.awt.event.ActionEvent evt) {</p><p>if (operacao == 1) { // Inclusão</p><p>Carro carro = new Carro();</p><p>CarroDAO carroDao = new CarroDAO();</p><p>carro.setPlaca(tfPlaca.getText());</p><p>carro.setMarca(tfMarca.getText());</p><p>carro.setCor(tfCor.getText());</p><p>carro.setHoraEntrada(Integer.parseInt(tfHoraEntrada.getText()));</p><p>carro.setHoraSaida(Integer.parseInt(tfHoraSaida.getText()));</p><p>// Verifica se a operação de inserção obteve sucesso</p><p>if (carroDao.adicionar(carro)) {</p><p>String mensagem = "Carro Inserido!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>} else if (operacao == 2) { // Alteração</p><p>Carro carro = new Carro();</p><p>CarroDAO carroDao = new CarroDAO();</p><p>carro.setId(id);</p><p>carro.setPlaca(tfPlaca.getText());</p><p>carro.setMarca(tfMarca.getText());</p><p>carro.setCor(tfCor.getText());</p><p>carro.setHoraEntrada(Integer.parseInt(tfHoraEntrada.getText()));</p><p>carro.setHoraSaida(Integer.parseInt(tfHoraSaida.getText()));</p><p>if (carroDao.alterar(carro)) {</p><p>String mensagem = "Carro Alterado!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>} else if (operacao == 3) { // Exclusão</p><p>Carro carro = new Carro();</p><p>CarroDAO carroDao = new CarroDAO();</p><p>carro.setId(id);</p><p>carro.setPlaca(tfPlaca.getText());</p><p>carro.setMarca(tfMarca.getText());</p><p>carro.setCor(tfCor.getText());</p><p>carro.setHoraEntrada(Integer.parseInt(tfHoraEntrada.getText()));</p><p>carro.setHoraSaida(Integer.parseInt(tfHoraSaida.getText()));</p><p>if (carroDao.excluir(carro)) {</p><p>String mensagem = "Carro Excluído!";</p><p>JOptionPane.showMessageDialog(null, mensagem);</p><p>}</p><p>}</p><p>this.dispose();</p><p>}</p><p>private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {</p><p>this.dispose();</p><p>}</p><p>public static void main(String args[]) {</p><p>java.awt.EventQueue.invokeLater(new Runnable() {</p><p>public void run() {</p><p>new TelaDados(0, 0).setVisible(true);</p><p>}</p><p>});</p><p>}</p><p>// Variables declaration - do not modify</p><p>private javax.swing.JButton btCancelar;</p><p>private javax.swing.JButton btConfirmar;</p><p>private javax.swing.JLabel lb1;</p><p>private javax.swing.JLabel lb2;</p><p>private javax.swing.JLabel lb3;</p><p>private javax.swing.JLabel lb4;</p><p>private javax.swing.JLabel lb5;</p><p>private javax.swing.JLabel lb6;</p><p>private javax.swing.JTextField tfCor;</p><p>private javax.swing.JTextField tfHoraEntrada;</p><p>private javax.swing.JTextField tfHoraSaida;</p><p>private javax.swing.JTextField tfMarca;</p><p>private javax.swing.JTextField tfPlaca;</p><p>// End of variables declaration</p><p>}</p><p>Resultados Obtidos</p><p>imagem 1: tela inicial</p><p>imagem 2: inclusão de registro</p><p>imagem 3: alteração de registro</p><p>imagem 4: exclusão de registro</p><p>imagem 5: listagem dos itens</p><p>Conclusão</p><p>O desenvolvimento da aplicação objetivou a aplicação prática dos conceitos</p><p>de Programação Orientada a Objetos e manipulação de banco de dados, resultando</p><p>em um sistema com interface gráfica para o controle de carros em um</p><p>estacionamento. Com uma interface gráfica, o sistema atende às necessidades de</p><p>gerenciamento de veículos, oferecendo funcionalidades essenciais como inclusão,</p><p>alteração, exclusão e listagem de registros.</p><p>A implementação do banco de dados, integrada via JDBC, foi um dos</p><p>pontos principais do projeto, demonstrando a importância da comunicação entre a</p><p>aplicação e a base de dados. A aplicação ainda pode ser expandida com novas</p><p>funcionalidades e aprimorada com o uso de outros tipos de bancos de dados e</p><p>ferramentas de persistência.</p><p>Referência</p><p>YouTube. Como fazer conexão com banco de dados Access em Java. Disponível em:</p><p>https://www.youtube.com/watch?v=utGrx5nnJBs. Acesso em: 9 set. 2024.</p><p>https://www.youtube.com/watch?v=utGrx5nnJBs</p><p>https://www.youtube.com/watch?v=utGrx5nnJBs</p>

Mais conteúdos dessa disciplina