Prévia do material em texto
Portfólio de Programação Orientada a
Objetos II
Aluno: Francisco Erik Brito Martins
Curso: Sistemas de Informação - 6º Semestre
Introdução
Este relatório tem como objetivo apresentar a execução de quatro projetos distintos,
cobrindo aspectos fundamentais do desenvolvimento em Java SE: Interface Gráfica (GUI),
Concorrência (Threads), Padrões de Projeto e Persistência de Dados (JDBC). O foco é
validar a aplicação prática de cada conceito.
Detalhamento dos Projetos
Projeto 1: Implementação de GUI com Java Swing
Introdução
O objetivo foi criar uma Interface Gráfica do Usuário (GUI) básica, utilizando a biblioteca
Java Swing, focando na organização visual dos componentes.
Métodos
A classe principal extends JFrame (a janela). Utilizamos o FlowLayout para posicionar
componentes padrões (botões, JComboBox, JTextField) dentro do frame.
Resultados
A janela foi renderizada com sucesso, exibindo todos os componentes de forma acessível
ao usuário. A estrutura visual básica foi estabelecida.
Conclusão
O projeto validou a montagem da estrutura visual da aplicação. Seria necessário adicionar
Tratamento de Eventos para que os componentes se tornem funcionais.
Código Fonte:
import javax.swing.*;
import java.awt.*;
public class MainApp extends JFrame {
public MainApp() {
setTitle("Aplicação Gráfica");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
String[] options = {"Opção 1", "Opção 2", "Opção 3"};
JComboBox comboBox = new JComboBox(options);
JCheckBox checkBox = new JCheckBox("Aceitar termos");
JTextField textField = new JTextField(15);
JButton btnSalvar = new JButton("Salvar");
JButton btnSair = new JButton("Sair");
add(comboBox);
add(checkBox);
add(textField);
add(btnSalvar);
add(btnSair);
setVisible(true);
}
public static void main(String[] args) {
new MainApp();
}
}
Projeto 2: Demonstração de Threads
Introdução
O objetivo foi demonstrar o conceito de Multithreading, permitindo que duas rotinas de
código sejam executadas assincronamente, otimizando o tempo de espera.
Métodos
Foi criado duas tarefas que implementam a interface Runnable: uma com pausa de 1
segundo (contagem) e outra com pausa de 2 segundos (mensagens). Ambas foram
iniciadas simultaneamente usando o método start().
Resultados
A saída no console apresentou um entrelaçamento dos números e mensagens, confirmando
que o Java executou as duas tarefas em paralelo, sem que uma bloqueasse a outra.
Conclusão
A implementação de Runnable e o uso correto de .start() foram bem-sucedidos em
demonstrar a execução não-bloqueante, essencial para aplicações responsivas.
Códigos fonte:
(Main.java)
public class Main {
public static void main(String[] args) {
ExibirNumeros thread1 = new ExibirNumeros();
ExibirMensagens thread2 = new ExibirMensagens();
Thread t1 = new Thread(thread1);
Thread t2 = new Thread(thread2);
t1.start();
t2.start();
}
}
(ExibirMensagens.java)
class ExibirMensagens implements Runnable {
@Override
public void run() {
String[] mensagens = {"Mensagem A", "Mensagem B", "Mensagem C", "Mensagem
D"};
int i = 0;
while (iSystem.out.println("ID: " + id + ", Nome: " + nome + ", Email: " + email);
}
} catch(SQLException e) {
System.out.println("Erro SQL: " + e.getMessage());
e.printStackTrace();
} catch(ClassNotFoundException e) {
System.out.println("Driver MySQL não encontrado: " + e.getMessage());
} finally {
try {
if(rs != null) {
rs.close();
}
if(stmt != null) {
stmt.close();
}
if(conexao != null) {
conexao.close();
System.out.println("\nConexão fechada com sucesso!");
}
} catch(SQLException e) {
System.out.println("Erro ao fechar recursos: " + e.getMessage());
}
}
}
}
Conclusão Final
Os quatro projetos cobriram o ciclo completo de um aplicativo Java, passando pelo
front-end (Swing), processamento assíncrono (Threads), arquitetura (Singleton) e backend
(JDBC). A aplicação bem-sucedida dos conceitos valida a proficiência no desenvolvimento
de software em Java SE.
Portfólio de Programação Orientada a Objetos II
Introdução
Detalhamento dos Projetos
Projeto 1: Implementação de GUI com Java Swing
Projeto 2: Demonstração de Threads
Projeto 3: Aplicação do Singleton
Projeto 4: Banco de Dados NoSQL
Conclusão Final