
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.