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
playe 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.






