Professional Documents
Culture Documents
Relatório
Relatório
Linguagem de Programação II
Jady L. Silva1 ,Wendy M. Moreira2
1
Instituto Metrópole Digital – Universidade Federal do Rio Grande do Norte (UFRN)
1. Introdução
Neste relatório, é apresentado o desenvolvimento de um player de música em Java utili-
zando a biblioteca JLayer, o padrão de arquitetura MVC e a plataforma JavaFX. O obje-
tivo do projeto é criar um reprodutor de música com interface gráfica moderna e recursos
avançados. O desenvolvimento é realizado em etapas, abrangendo desde a configuração
do ambiente de desenvolvimento até a implementação da reprodução de músicas utili-
zando a biblioteca JLayer. A interface gráfica é construı́da com o JavaFX, proporcionando
recursos visuais. Ao final do projeto, é obtido um player de música funcional, capaz de
reproduzir arquivos MP3, controlar a reprodução e exibir informações relevantes. O uso
do JLayer, MVC e JavaFX resulta em uma estrutura organizada e uma interface amigável
para o usuário.
2. Solução do problema
Durante o projeto, foram tomadas algumas decisões importantes, como a utilização da
arquitetura MVC para separar a lógica de negócio da interface gráfica, o que permitiu
uma melhor organização e manutenção do código.
Além disso, foram identificados padrões de projeto aplicados, como:
• Padrão Observer: Utilizado para notificar a interface gráfica sobre alterações nos
dados das músicas ou playlists.
• Padrão Factory Method: Utilizado na criação de objetos do tipo User, permitindo
a criação de usuários VIP ou comuns de forma flexı́vel.
• Padrão DAO (Data Access Object): Utilizado para separar a camada de acesso
a dados da lógica de negócio, permitindo uma maior flexibilidade na troca de
implementações de acesso a dados.
Após realizado a análise e definição das ferramentas e arquitetura que melhor contribuiria
para o desenvolvimento do projeto, houve a distribuição de tarefas entre os integrantes do
grupo.
As atividades desempenhadas por cada integrante foram definidas de acordo com
afinidades de cada um. Além disso, a distribuição de atividades foi definida visando
contribuir para o desenvolvimento ágil e organizado da aplicação. Esta ficou definida
como apresentada a tabela abaixo.
Tabela 1. Tabela de distribuição de tarefas
3. Descrição geral
O projeto consiste no desenvolvimento de um player de música em Java, utilizando di-
versos conceitos e componentes para sua implementação. O sistema é baseado em uma
arquitetura MVC (Model-View-Controller) e utiliza a plataforma JavaFX para a criação
da interface gráfica. As classes modelo desse projeto incluem:
• AbstractUser: é uma classe abstrata que define comportamentos comuns a todos
os tipos de usuários.
• User: Herda os atributos de AbstractUser e implementa a função abstrata. Essa
classe representa um usuário do sistema.
• CommonUser: é uma subclasse de User e representa um usuário comum.
• VipUser: é uma subclasse de User e representa um usuário com privilégios VIP.
• Music: representa uma música, contendo informações como nome, caminho e
identificador.
• Directory: representa um diretório de músicas.
• Playlist: representa uma playlist, contendo uma coleção de músicas.
Além das classes modelo, o projeto também possui classes de controle para as
telas FXML, que são responsáveis por gerenciar a interação entre a interface gráfica e a
lógica de negócio.
Para lidar com exceções, foram implementadas classes de exceptions, que tratam
erros especı́ficos que podem ocorrer durante a execução do programa.
As classes DAO (Data Access Object) são responsáveis por realizar operações de
acesso e manipulação de dados relacionados ao sistema. Essas classes incluem:
• FileDAO: classe intermediária para operações de manipulação de arquivos.
• DirectoryDAO: realiza operações relacionadas aos diretórios de músicas, como
criação, remoção e pesquisa.
• DirectoryFileDAO: classe que contém as funções de manipulação do diretório.txt.
• MusicDAO: realiza operações relacionadas às músicas, como obtenção de meta-
dados e manipulação da lista de reprodução.
• MusicFileDAO: classe que contém as funções de manipulação do musica.txt.
• PlaylistDAO: realiza operações relacionadas às playlists, como criação, adição e
remoção de músicas.
• PlaylistFileDAO: classe que contém as funções de manipulação dos arquivos play-
list xxx.txt.
• UserDAO: realiza operações relacionadas aos usuários, como criação de usuário.
• UserFileDAO: classe que contém as funções de manipulação do usuarios.txt.
Essas classes DAO permitem o acesso aos dados necessários para o funcionamento
do player de música, realizando operações de leitura, gravação e exclusão de informações.
As classes do tipo Controler ficaram responsáveis pela interatividade da tela. Ela
possui a execução dos comandos executado a cada interação do usuário com a tela. Entre
as classes do tipo controler temos:
• TelaCadastroController: responsáveis pela interação da tela de cadastro de
usuário. Ela é responsável pela chamada de funções que permitem o cadastro
de uma conta do usuário no player.
• TelaDiretorioController: classe que contém as chamadas dos métodos para
interação na telaDiretorio.
• TelaLoginController: classe responsável por chamar as funções que controla o
acesso de usuário ao play. Ela verifica se o usuário esta cadastrado, se sim, permite
a seção dele. Caso o usuário não esteja no banco ela retorna um aviso para que o
mesmo se cadastre.
• TelaMusicasController: é o controle que contém as chamadas de funções para tela
de manipulação das músicas.
Além das classe acima, foram criadas as classe do tipo visão, onde estão as telas.
O projeto foi dividido em 5 telas, essas são:
• telaLogin: tela inicial da aplicação. Tela inicial, como mostra a figura 3.
4. Conclusão
Em resumo, o projeto do player de música em Java mostrou a aplicação prática de vários
conceitos e componentes importantes no desenvolvimento de um sistema complexo. A
utilização da arquitetura MVC, JavaFX, classes de exceção e DAOs contribuiu para a
organização, eficiência e robustez do sistema, oferecendo uma experiência satisfatória
aos usuários. Com base nesse projeto, é possı́vel explorar ainda mais recursos e aprimo-
rar a funcionalidade do player de música, atendendo às necessidades e expectativas dos
usuários de forma cada vez mais completa.
5. Referências
Flavio Vieira - Progamação Noob. COMO REPRODUZIR ARQUIVOS MP3 COM LIN-
GUAGEM JAVA PARTE 1 (Programação Noob). [Vı́deo]. YouTube, 2021. Disponı́vel
em: https://youtu.be/kC9d K5hQP o.Acessoem : 03jun.2023.
Flavio Vieira - Progamação Noob. COMO REPRODUZIR ARQUIVOS MP3
COM LINGUAGEM JAVA PARTE 2 (Programação Noob). [Vı́deo]. YouTube, 2021.
Disponı́vel em: https://youtu.be/cu1mcOjJtdg. Acesso em: 03 jun. 2023.
SOCIEDADE BRASILEIRA DE COMPUTAÇÃO (SBC). Modelos
para publicação de artigos e capı́tulos de livros. [Online]. Disponı́vel em:
https://www.sbc.org.br/documentos-da-sbc/summary/169-templates-para-artigos-e-
capitulos-de-livros/878-modelosparapublicaodeartigos. Acesso em: 15 jun. 2023.
BOSON TREINAMENTOS. Obter informações sobre arqui-
vos e diretórios com Java e classes NIO. [Online]. Disponı́vel em:
http://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-
diretorios-com-java-e-classes-nio/. Acesso em: 13 jun. 2023.
MEDEIROS, A. Escrever e Ler arquivos com Java. [Online]. Disponı́vel em:
https://www.lncc.br/ rogerio/poo/08-Arquivos-Java/Escrever
MBALLEM. Manipulando arquivo TXT com Java. [Online]. Disponı́vel em:
https://www.mballem.com/post/manipulando-arquivo-txt-com-java/. Acesso em: 05 jun.
2023.