Esse é um projeto feito em Java cuja funcionalidade consiste em gerar sons a partir de um texto qualquer. Ele utiliza o padrão de projeto MVC, utilizando a framework MVC-in-Java. O principal objetivo desse projeto não é a aplicação em si, mas sim em desenvolver uma aplicação que siga boas práticas, com o uso de um código limpo e com alta legibilidade. Foram usados diversas técnicas e refatorações a fim de cumprir com esse objetivo.
- Informar um arquivo de texto (formato
.txt
) - Será aberto o player. Escolha a opção
play
e a aplicação irá executar o som gerado através do arquivo de texto
Tecla | Função |
---|---|
Space |
Play / pause |
H |
Stop |
Ctrl + N |
Abre a janela para troca de texto, pedindo para o usuário digitar um texto |
Ctrl + O |
Abre a janela para troca de texto, pedindo para o usuário escolher um arquivo .txt |
Ctrl + W |
Fecha a janela atual e volta para a tela inicial |
Alt + F4 |
Fecha a aplicação |
- O texto informado não pode ter underscores (
_
), visto que é um símbolo reservado da aplicação
Detalhes sobre cada versão estão documentadas na seção releases.
Nome | Tipo | Descrição |
---|---|---|
Controller | Classe abstrata |
Contém o frame principal da aplicação. Todas os controllers devem extender este |
Model | Interface |
Possuem comportamento de um Observator. Todos as classes models implementarão essa interface |
View | Interface |
Possuem comportamento de um Observer. Todos as classes views implementarão essa interface |
Nome | Tipo | Descrição |
---|---|---|
HomeController | Classe |
Responsável pelo comportamento da view Home |
KeyboardController | Classe |
Responsável pelo comportamento do teclado |
TextPlayerController | Classe |
Responsável pelo comportamento da view TextPlayer |
Nome | Tipo | Descrição |
---|---|---|
FileInputDialog | Classe |
Responsável por obter |
input de arquivo através de uma janela | ||
FileInputType | Enumeração |
Contém os tipos de input de arquivo disponíveis |
InputDialog | Classe abstrata |
Responsável por obter um input através de uma janela |
TextInputDialog | Classe |
Responsável por obter input de texo através de uma janela |
Nome | Tipo | Descrição |
---|---|---|
JFugueMusicalNote | Classe |
Responsável por representar uma nota musical da API JFugue |
Nome | Tipo | Descrição |
---|---|---|
JFugueMusicPlayer | Classe |
Responsável por representar o player de música da API JFugue |
MusicPlayer | Interface |
Responsável por representar players de música |
Nome | Tipo | Descrição |
---|---|---|
JFugueMusicParser | Classe |
Responsável pelo parse de um arquivo para posterior uso deste arquivo pelo JFugue |
Parser | Classe |
Responsável pelo parse de um arquivo. Utiliza injeção de dependência com relação a interface ParseType |
ParseType | Interface |
Todas as classes que a implementarem poderão ser utilizadas pela classe Parser para a realização do parse |
Contém as classes utilitárias da aplicação, sendo totalmente independentes das classes da aplicação.
Nome | Tipo | Descrição |
---|---|---|
HomeView | Classe |
Responsável pela tela inicial da aplicação |
TextPlayerView | Classe |
Responsável pela tela do player de música da aplicação |
Dentro da pasta src encontra-se todo o conteúdo referente à aplicação.
Nome | Tipo | Descrição |
---|---|---|
bin | Diretório |
Contém os arquivos binários da aplicação |
dist | Diretório |
Contém os arquivos executáveis do projeto |
docs | Diretório |
Informações relativas a documentação / Diagrama UML |
lib | Diretório |
Contém as bibliotecas que a aplicação depende |
src | Diretório |
Contém os arquivos fonte da aplicação |
test | Diretório |
Contém os testes da aplicação |
.classpath | Arquivo |
Arquivo gerado por IDE |
.project | Arquivo |
Arquivo gerado por IDE |
Name | Type | Function |
---|---|---|
assets | Diretório |
Contém todos os arquivos de conteúdo da aplicação |
controllers | Diretório |
Contém todas as classes de controllers da aplicação |
core | Diretório |
Contém as classes e interfaces essenciais para o funcionamento da estrutura MVC |
models | Diretório |
Contém todas as classes de models da aplicação |
resources | Diretório |
Contém os arquivos de configuração da aplicação, como os dicionários (resource bundles) |
views | Diretório |
Contém todas as classes responsáveis pela parte visual do programa |
Main.java | Arquivo |
Arquivo responsável pelo início da aplicação |
- Freeman, Eric, Elisabeth Robson, Kathy Sierra, and Bert Bates. 2004. Head First design patterns. Sebastopol, CA: O'Reilly.
- Beck, Kant. Implementation Patterns, Addison-Wesley, 2008.
- Meyer, Bertrand. Object-Oriented Software Construction (Book/CD-ROM), Prentice Hall, 2000.