Deafword – Um Editor De Textos Baseado Em Libras

DeafWord ScreenShortPessoal olhem que ideia mais legal essa. Um aplicativo em Java que é um editor de textos baseado em Libras. O aplicativo não está totalmente finalizado, ainda falta muitas coisas que podem ser implementada, melhorado, os autores originais não conseguiram dar continuidade ao projeto, mas disponibilizaram prontamente o que já foi desenvolvido.

Quero muito agradecer a Ellen Souza que foi a primeira em entra em contato comigo e também agradecer ao Cleyton Vanut que me mandou o fonte.

Quem gostaria de da continuidade a esse projeto? Quem precisa de um projeto para o seu TCC e/ou trabalho de curso mesmo pode da um upgrade nesse projeto e terá um ótimo TCC.

DeafWordPORTUGUÊS PARA DEFICIENTES AUDITIVOS: EXPERIÊNCIAS INICIAIS COM UM EDITOR DE TEXTOS BASEADO NA LIBRAS

O Deafword tem como objetivo apresentar para estudantes portadores de deficiência auditiva uma interface focada principalmente nos sinais da LIBRAS, diferentemente de outros sistemas de edição de textos que apresenta foco principal no português. O sistema possui as características básicas de edição de texto permitindo que o aluno surdo possa produzir frases e textos, apoiado pela visualização da forma gestual das expressões.
O projeto inicial do editor de texto traz, na forma de sinais, o alfabeto e as primeiras categorias de palavras implementadas para utilização na construção de textos dentro da categoria família, apresentação pessoal, informática e tempo. A ideia é que o Deafword possa evoluir para uma ferramenta de autoria, na qual o próprio professor mediador possa gravar e adicionar na base de dados as suas expressões idiomáticas em LIBRAS, juntamente com o respectivo termo em português.

Autores:
Ronnie E. S. Santos da Universidade Federal de Pernambuco/Brasil Email: ress@gmail.com
Ellen P. R. Souza da Universidade Federal Rural de Pernambuco/Brasil Email: ellen.polliana@gmail.com
Cleyton V. C. de Magalhães da Universidade Federal de Pernambuco/Brasil Email: cvcm@gmail.com
Jozinalva S. Maciel do Centro Educacional de Triunfo Prefeitura Municipal de Triunfo, Pernambuco/Brasil Email: josinalvamaciel@yahoo.com.br
Jorge S. Correia-Neto da Universidade Federal Rural de Pernambuco/Brasil Email: jorgecorreianeto@gmail.com

Aqui vai as classes Java para estudo e implementação do aplicativo.

Primeira classe Java é a Controle.java

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class Controle implements ActionListener {

    GUI gui = new GUI();
    int i = 0;
    int j = 0;
    int negrito = 0;
    int italico = 0;
    int centro = 0;
    int direita = 0;
    Font fonte;

    ImageIcon cat0 = new ImageIcon("src/Imagens/Categorias/Saudações.gif");
    ImageIcon cat1 = new ImageIcon("src/Imagens/Categorias/Família.gif");
    ImageIcon cat2 = new ImageIcon("src/Imagens/Categorias/Identificação.gif");

    ImageIcon vetor_categorias[] = { cat0, cat1, cat2 };

    ImageIcon esq = new ImageIcon(
            Controle.class.getResource("Imagens/Menu/esq.png"));
    ImageIcon cen = new ImageIcon(
            Controle.class.getResource("Imagens/Menu/centralizado.png"));
    ImageIcon dir = new ImageIcon(
            Controle.class.getResource("Imagens/Menu/dir.png"));

    // ImageIcon img0 = new
    // ImageIcon("src/Imagens/Palavras/Saudacoes/Bem vindo.gif");
    ImageIcon img0 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/2. Bem vindo.gif");
    ImageIcon img1 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/3. Bom dia.gif");
    ImageIcon img2 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/4. Boa tarde.gif");
    ImageIcon img3 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/5. Boa noite 1.gif");
    ImageIcon img4 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/6. Boa noite 2.gif");
    ImageIcon img5 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/7. com licença.gif");
    ImageIcon img6 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/8. desculpe.gif");
    ImageIcon img7 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/9. perdão.gif");
    ImageIcon img8 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/10. obrigado.gif");
    ImageIcon img9 = new ImageIcon(
            "src/Imagens/Palavras/Saudacoes/11. de nada.gif");

    ImageIcon img10 = new ImageIcon(
            "src/Imagens/Palavras/Familia/01. marido.gif");
    ImageIcon img11 = new ImageIcon(
            "src/Imagens/Palavras/Familia/02. esposa.gif");
    ImageIcon img12 = new ImageIcon("src/Imagens/Palavras/Familia/03. pai.gif");
    ImageIcon img13 = new ImageIcon("src/Imagens/Palavras/Familia/04. mãe.gif");
    ImageIcon img14 = new ImageIcon("src/Imagens/Palavras/Familia/05. bebê.gif");
    ImageIcon img15 = new ImageIcon(
            "src/Imagens/Palavras/Familia/06. filho.gif");
    ImageIcon img16 = new ImageIcon(
            "src/Imagens/Palavras/Familia/07. filha.gif");
    ImageIcon img17 = new ImageIcon(
            "src/Imagens/Palavras/Familia/08. menino.gif");
    ImageIcon img18 = new ImageIcon(
            "src/Imagens/Palavras/Familia/09. menina.gif");
    ImageIcon img19 = new ImageIcon(
            "src/Imagens/Palavras/Familia/10. jovem.gif");
    ImageIcon img20 = new ImageIcon(
            "src/Imagens/Palavras/Familia/11. rapaz.gif");
    ImageIcon img21 = new ImageIcon("src/Imagens/Palavras/Familia/12. moça.gif");
    ImageIcon img22 = new ImageIcon(
            "src/Imagens/Palavras/Familia/13. irmão.gif");
    ImageIcon img23 = new ImageIcon("src/Imagens/Palavras/Familia/14. irmã.gif");
    ImageIcon img24 = new ImageIcon(
            "src/Imagens/Palavras/Familia/15. filho adotivo.gif");
    ImageIcon img25 = new ImageIcon(
            "src/Imagens/Palavras/Familia/16. meio irmão.gif");
    ImageIcon img26 = new ImageIcon("src/Imagens/Palavras/Familia/17. vovô.gif");
    ImageIcon img27 = new ImageIcon("src/Imagens/Palavras/Familia/18. vovó.gif");
    ImageIcon img28 = new ImageIcon(
            "src/Imagens/Palavras/Familia/19. padrasto.gif");
    ImageIcon img29 = new ImageIcon(
            "src/Imagens/Palavras/Familia/20. madrasta.gif");
    ImageIcon img30 = new ImageIcon("src/Imagens/Palavras/Familia/21. tio.gif");
    ImageIcon img31 = new ImageIcon("src/Imagens/Palavras/Familia/22. tia.gif");
    ImageIcon img32 = new ImageIcon(
            "src/Imagens/Palavras/Familia/23. primo.gif");
    ImageIcon img33 = new ImageIcon(
            "src/Imagens/Palavras/Familia/24. sogra.gif");
    ImageIcon img34 = new ImageIcon(
            "src/Imagens/Palavras/Familia/25. cunhado.gif");
    ImageIcon img35 = new ImageIcon(
            "src/Imagens/Palavras/Familia/26. cunhada.gif");
    ImageIcon img36 = new ImageIcon(
            "src/Imagens/Palavras/Familia/27. sobrinho.gif");
    ImageIcon img37 = new ImageIcon(
            "src/Imagens/Palavras/Familia/28. madrinha.gif");
    ImageIcon img38 = new ImageIcon(
            "src/Imagens/Palavras/Familia/29. namoradpa.gif");
    ImageIcon img39 = new ImageIcon(
            "src/Imagens/Palavras/Familia/30. enteado.gif");
    ImageIcon img40 = new ImageIcon(
            "src/Imagens/Palavras/Familia/31. parentes.gif");
    ImageIcon img41 = new ImageIcon(
            "src/Imagens/Palavras/Familia/32. gêmeos.gif");
    ImageIcon img42 = new ImageIcon(
            "src/Imagens/Palavras/Familia/33. amigo.gif");
    ImageIcon img43 = new ImageIcon(
            "src/Imagens/Palavras/Familia/34. bisavó.gif");
    ImageIcon img44 = new ImageIcon(
            "src/Imagens/Palavras/Familia/35. bisavô.gif");

    ImageIcon img45 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/01. nome.gif");
    ImageIcon img46 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/02. sinal.gif");
    ImageIcon img47 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/03. idade.gif");
    ImageIcon img48 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/04. eu.gif");
    ImageIcon img49 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/05. voce.gif");
    ImageIcon img50 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/06. ele ou ela.gif");
    ImageIcon img51 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/07. nos.gif");
    ImageIcon img52 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/08. seu ou sua.gif");
    ImageIcon img53 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/09. meu ou minha.gif");
    ImageIcon img54 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/10. homem.gif");
    ImageIcon img55 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/11. solteiro.gif");
    ImageIcon img56 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/12. noivo.gif");
    ImageIcon img57 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/13. viúvo.gif");
    ImageIcon img58 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/14. separado.gif");
    ImageIcon img59 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/15. casado.gif");
    ImageIcon img60 = new ImageIcon(
            "src/Imagens/Palavras/Identificacao/16. adulto.gif");

    // ImageIcon img61 = new ImageIcon("src/Imagens/Testes/DeafWord.png");
    // ImageIcon img62 = new ImageIcon("src/Imagens/Testes/QuadroAzul.png");

    ImageIcon vetor_de_palavras[] = { img0, img1, img2, img3, img4, img5, img6,
            img7, img8, img9 };
    ImageIcon vetor_de_palavras2[] = { img10, img11, img12, img13, img14,
            img15, img16, img17, img18, img19, img20, img21, img22, img23,
            img24, img25, img26 };
    ImageIcon vetor_de_palavras3[] = { img45, img46, img47, img48, img49,
            img50, img51, img52, img53, img54, img55, img56, img57, img58,
            img59, img60 };

    public Controle() {

        gui.btnEsquerda.setIcon(esq);
        gui.btnCentralizar.setIcon(cen);
        gui.btnDireita.setIcon(dir);

        gui.setVisible(true);

        gui.btnRetroceder.addActionListener(this);
        gui.btnRetroceder2.addActionListener(this);
        gui.btnAvancar.addActionListener(this);
        gui.btnAvancar2.addActionListener(this);
        gui.btnAdicionar.addActionListener(this);
        gui.btnNegrito.addActionListener(this);
        gui.btnItalico.addActionListener(this);
        gui.btnCentralizar.addActionListener(this);
        gui.btnDireita.addActionListener(this);
        gui.btnEsquerda.addActionListener(this);
        gui.btnPreto.addActionListener(this);
        gui.btnLaranja.addActionListener(this);
        gui.btnAzul.addActionListener(this);
        gui.btnVermelho.addActionListener(this);
        gui.btnVerde.addActionListener(this);
    }

    public void carregarImagensCategoria() {

        if (gui.interprete_categoria.getIcon().toString() == "saudacoes")
            ;
        {
            // gui.interprete_palavras.setIcon(img0);
        }
    }

    public void actionPerformed(final ActionEvent e) {

        if (e.getSource() == gui.btnNegrito) {
            String texto = gui.painel_texto.getText();
            fonte = gui.painel_texto.getFont();

            if (negrito == 0) {
                gui.painel_texto.setText(texto);
                gui.painel_texto.setFont(fonte.deriveFont(Font.BOLD));
                negrito = 1;
                italico = 0;
            }

            else if (negrito == 1) {
                gui.painel_texto.setText(texto);
                gui.painel_texto.setFont(fonte.deriveFont(Font.PLAIN));
                negrito = 0;
                italico = 0;
            }
        }

        if (e.getSource() == gui.btnItalico) {
            String texto = gui.painel_texto.getText();
            fonte = gui.painel_texto.getFont();

            if (italico == 0) {
                gui.painel_texto.setText(texto);
                gui.painel_texto.setFont(fonte.deriveFont(Font.ITALIC));
                italico = 1;
                negrito = 0;
            }

            else if (italico == 1) {
                gui.painel_texto.setText(texto);
                gui.painel_texto.setFont(fonte.deriveFont(Font.PLAIN));
                italico = 0;
                negrito = 0;
            }
        }

        if (e.getSource() == gui.btnPreto) {
            String texto = gui.painel_texto.getText();
            fonte = gui.painel_texto.getFont();
            gui.painel_texto.setText(texto);
            gui.painel_texto.setForeground(Color.BLACK);
        }

        if (e.getSource() == gui.btnAzul) {
            String texto = gui.painel_texto.getText();
            fonte = gui.painel_texto.getFont();
            gui.painel_texto.setText(texto);
            gui.painel_texto.setForeground(Color.BLUE);
        }

        if (e.getSource() == gui.btnVermelho) {
            String texto = gui.painel_texto.getText();
            fonte = gui.painel_texto.getFont();
            gui.painel_texto.setText(texto);
            gui.painel_texto.setForeground(Color.RED);
        }

        if (e.getSource() == gui.btnVerde) {
            String texto = gui.painel_texto.getText();
            fonte = gui.painel_texto.getFont();
            gui.painel_texto.setText(texto);
            gui.painel_texto.setForeground(Color.GREEN);
        }

        if (e.getSource() == gui.btnLaranja) {
            String texto = gui.painel_texto.getText();
            fonte = gui.painel_texto.getFont();
            gui.painel_texto.setText(texto);
            gui.painel_texto.setForeground(Color.ORANGE);
        }

        if (e.getSource() == gui.btnCentralizar) {
            if (centro == 0) {
                StyledDocument doc = gui.painel_texto.getStyledDocument();
                SimpleAttributeSet center = new SimpleAttributeSet();
                StyleConstants
                        .setAlignment(center, StyleConstants.ALIGN_CENTER);
                doc.setParagraphAttributes(0, doc.getLength(), center, false);
                centro = 1;
                direita = 0;
            }

            else if (centro == 1) {
                StyledDocument doc = gui.painel_texto.getStyledDocument();
                SimpleAttributeSet center = new SimpleAttributeSet();
                StyleConstants.setAlignment(center, StyleConstants.ALIGN_LEFT);
                doc.setParagraphAttributes(0, doc.getLength(), center, false);
                centro = 0;
                direita = 0;
            }
        }

        if (e.getSource() == gui.btnDireita) {
            if (direita == 0) {
                StyledDocument doc = gui.painel_texto.getStyledDocument();
                SimpleAttributeSet center = new SimpleAttributeSet();
                StyleConstants.setAlignment(center, StyleConstants.ALIGN_RIGHT);
                doc.setParagraphAttributes(0, doc.getLength(), center, false);
                centro = 0;
                direita = 1;
            }

            else if (direita == 1) {
                StyledDocument doc = gui.painel_texto.getStyledDocument();
                SimpleAttributeSet center = new SimpleAttributeSet();
                StyleConstants.setAlignment(center, StyleConstants.ALIGN_LEFT);
                doc.setParagraphAttributes(0, doc.getLength(), center, false);
                direita = 0;
                centro = 0;
            }
        }

        if (e.getSource() == gui.btnEsquerda) {
            StyledDocument doc = gui.painel_texto.getStyledDocument();
            SimpleAttributeSet center = new SimpleAttributeSet();
            StyleConstants.setAlignment(center, StyleConstants.ALIGN_LEFT);
            doc.setParagraphAttributes(0, doc.getLength(), center, false);
        }

        if (e.getSource() == gui.btnRetroceder) {
            i--;

            if (i < 0) {
                i = vetor_categorias.length - 1;
            }

            // gui.interprete_palavras.setIcon(img61);
            gui.interprete_palavras.setIcon(cat0);
            gui.palavra.setText("");
            gui.interprete_categoria.setIcon(vetor_categorias[i]);
            String cat = vetor_categorias[i].getDescription().toString();
            cat = cat.substring(23, cat.length() - 4);
            gui.nome_saudacoes.setText(cat);

        }

        if (e.getSource() == gui.btnAvancar) {

            // gui.interprete_palavras.setIcon(img61);
            gui.interprete_palavras.setIcon(cat0);
            gui.palavra.setText("");
            gui.interprete_categoria.setIcon(vetor_categorias[i]);
            String cat = vetor_categorias[i].getDescription().toString();
            cat = cat.substring(23, cat.length() - 4);
            gui.nome_saudacoes.setText(cat);

            i++;

            if (i == vetor_categorias.length - 1) {
                i = 0;
            }
        }

        // -----------------------------------------------------------------

        if (e.getSource() == gui.btnAvancar2) {
            if (gui.nome_saudacoes.getText().equals("Saudações")) {
                gui.interprete_palavras.setIcon(vetor_de_palavras[j]);
                String palavra = vetor_de_palavras[j].getDescription()
                        .toString();
                palavra = palavra.substring(34, palavra.length() - 4);
                gui.palavra.setText(palavra);
                j++;

                if (i == vetor_de_palavras.length - 1) {
                    j = 0;
                }
            }

            if (gui.nome_saudacoes.getText().equals("Família")) {
                gui.interprete_palavras.setIcon(vetor_de_palavras2[j]);
                String palavra = vetor_de_palavras2[j].getDescription()
                        .toString();
                palavra = palavra.substring(28, palavra.length() - 4);
                gui.palavra.setText(palavra);

                j++;

                if (j == vetor_de_palavras2.length - 1) {
                    j = 0;
                }
            }

            if (gui.nome_saudacoes.getText().equals("Identificação")) {
                gui.interprete_palavras.setIcon(vetor_de_palavras3[j]);

                String palavra = vetor_de_palavras3[j].getDescription()
                        .toString();
                palavra = palavra.substring(34, palavra.length() - 4);
                gui.palavra.setText(palavra);

                j++;

                if (j == vetor_de_palavras3.length - 1) {
                    j = 0;
                }
            }
        }

        if (e.getSource() == gui.btnRetroceder2) {
            if (gui.nome_saudacoes.getText().equals("Saudações")) {
                j--;

                if (j < 0) {
                    j = vetor_categorias.length - 1;
                }

                gui.interprete_palavras.setIcon(vetor_de_palavras[j]);
                String palavra = vetor_de_palavras[j].getDescription()
                        .toString();
                palavra = palavra.substring(34, palavra.length() - 4);
                gui.palavra.setText(palavra);
            }

            if (gui.nome_saudacoes.getText().equals("Família")) {
                j--;
                if (j < 0) {
                    j = vetor_categorias.length - 1;
                }

                gui.interprete_palavras.setIcon(vetor_de_palavras2[j]);
                String palavra = vetor_de_palavras2[j].getDescription()
                        .toString();
                palavra = palavra.substring(28, palavra.length() - 4);
                gui.palavra.setText(palavra);
            }

            if (gui.nome_saudacoes.getText().equals("Identificação")) {
                j--;
                if (j < 0) {
                    j = vetor_categorias.length - 1;
                }

                gui.interprete_palavras.setIcon(vetor_de_palavras3[j]);
                String palavra = vetor_de_palavras3[j].getDescription()
                        .toString();
                palavra = palavra.substring(35, palavra.length() - 4);
                gui.palavra.setText(palavra);
            }
        }

        if (e.getSource() == gui.btnAdicionar) {
            gui.painel_texto.setText(gui.painel_texto.getText() + " "
                    + gui.palavra.getText());
        }
    }
}

A segunda clase Java é a GUI.java

import java.awt.*;
import javax.swing.*;
import javax.swing.GroupLayout;
import javax.swing.border.*;
/*
 * Created by JFormDesigner on Sat Jun 18 20:31:29 BRT 2011
 *
 * @author Brainrain
 */

public class GUI extends JFrame {
    
    private static final long serialVersionUID = 1L;
    public GUI() {
        initComponents();
    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY
        barra_menus = new JMenuBar();
        menu1 = new JMenu();
        menuItem1 = new JMenuItem();
        menuItem2 = new JMenuItem();
        menuItem3 = new JMenuItem();
        menuItem4 = new JMenuItem();
        barra_ferramentas = new JToolBar();
        btnNegrito = new JButton();
        btnItalico = new JButton();
        btnEsquerda = new JButton();
        btnCentralizar = new JButton();
        btnDireita = new JButton();
        btnPreto = new JButton();
        btnAzul = new JButton();
        btnVerde = new JButton();
        btnLaranja = new JButton();
        btnVermelho = new JButton();
        painel_editor = new JPanel();
        scrollPane1 = new JScrollPane();
        painel_texto = new JTextPane();
        painel_interprete = new JPanel();
        painel_interprete_categorias = new JPanel();
        interprete_categoria = new JLabel();
        btnRetroceder = new JButton();
        btnAvancar = new JButton();
        nome_saudacoes = new JTextField();
        painel_interprete_categorias2 = new JPanel();
        interprete_palavras = new JLabel();
        btnRetroceder2 = new JButton();
        btnAvancar2 = new JButton();
        palavra = new JTextField();
        btnAdicionar = new JButton();

        //======== this ========
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setTitle("DeafWord");
        Container contentPane = getContentPane();

        //======== barra_menus ========
        {

            //======== menu1 ========
            {
                menu1.setText("Arquivo");

                //---- menuItem1 ----
                menuItem1.setText("Abrir");
                menu1.add(menuItem1);

                //---- menuItem2 ----
                menuItem2.setText("Salvar");
                menu1.add(menuItem2);

                //---- menuItem3 ----
                menuItem3.setText("Imprimir");
                menu1.add(menuItem3);

                //---- menuItem4 ----
                menuItem4.setText("Sair");
                menu1.add(menuItem4);
            }
            barra_menus.add(menu1);
        }
        setJMenuBar(barra_menus);

        //======== barra_ferramentas ========
        {

            //---- bot_n ----
            btnNegrito.setText(" N ");
            btnNegrito.setFont(new Font("Tahoma", Font.BOLD, 18));
            barra_ferramentas.add(btnNegrito);

            //---- btnItalico ----
            btnItalico.setText(" I ");
            btnItalico.setFont(new Font("Tahoma", Font.ITALIC, 18));
            barra_ferramentas.add(btnItalico);
            barra_ferramentas.add(btnEsquerda);
            barra_ferramentas.add(btnCentralizar);
            barra_ferramentas.add(btnDireita);

            //---- btnPreto ----
            btnPreto.setText("preto");
            barra_ferramentas.add(btnPreto);

            //---- btnAzul ----
            btnAzul.setText("Azul");
            barra_ferramentas.add(btnAzul);

            //---- btnVerde ----
            btnVerde.setText("Verde");
            barra_ferramentas.add(btnVerde);

            //---- btnLaranja ----
            btnLaranja.setText("Laranja");
            barra_ferramentas.add(btnLaranja);

            //---- btnVermelho ----
            btnVermelho.setText("Vermelho");
            barra_ferramentas.add(btnVermelho);
        }

        //======== painel_editor ========
        {

            //======== scrollPane1 ========
            {
                scrollPane1.setViewportView(painel_texto);
            }

            GroupLayout painel_editorLayout = new GroupLayout(painel_editor);
            painel_editor.setLayout(painel_editorLayout);
            painel_editorLayout.setHorizontalGroup(
                painel_editorLayout.createParallelGroup()
                    .addGroup(painel_editorLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(scrollPane1, GroupLayout.DEFAULT_SIZE, 779, Short.MAX_VALUE)
                        .addContainerGap())
            );
            painel_editorLayout.setVerticalGroup(
                painel_editorLayout.createParallelGroup()
                    .addGroup(painel_editorLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(scrollPane1, GroupLayout.DEFAULT_SIZE, 593, Short.MAX_VALUE)
                        .addContainerGap())
            );
        }

        //======== painel_interprete ========
        {

            //======== painel_interprete_categorias ========
            {
                painel_interprete_categorias.setBorder(new TitledBorder("Categorias"));

                //---- interprete_categoria ----
                interprete_categoria.setHorizontalAlignment(SwingConstants.CENTER);
                interprete_categoria.setIcon(new ImageIcon(GUI.class.getResource("Imagens/Testes/DeafWord.png")));

                //---- btnRetroceder ----
                btnRetroceder.setText("<");
                btnRetroceder.setToolTipText("Retroceder");
                btnRetroceder.setCursor(new Cursor(Cursor.HAND_CURSOR));

                //---- btnAvancar ----
                btnAvancar.setText(">");
                btnAvancar.setToolTipText("Avançar");
                btnAvancar.setCursor(new Cursor(Cursor.HAND_CURSOR));

                //---- nome_saudacoes ----
                nome_saudacoes.setHorizontalAlignment(SwingConstants.CENTER);

                GroupLayout painel_interprete_categoriasLayout = new GroupLayout(painel_interprete_categorias);
                painel_interprete_categorias.setLayout(painel_interprete_categoriasLayout);
                painel_interprete_categoriasLayout.setHorizontalGroup(
                    painel_interprete_categoriasLayout.createParallelGroup()
                        .addGroup(painel_interprete_categoriasLayout.createSequentialGroup()
                            .addContainerGap()
                            .addGroup(painel_interprete_categoriasLayout.createParallelGroup()
                                .addGroup(painel_interprete_categoriasLayout.createSequentialGroup()
                                    .addComponent(btnRetroceder)
                                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(nome_saudacoes, GroupLayout.PREFERRED_SIZE, 112, GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(btnAvancar, GroupLayout.DEFAULT_SIZE, 40, Short.MAX_VALUE))
                                .addComponent(interprete_categoria, GroupLayout.DEFAULT_SIZE, 205, Short.MAX_VALUE))
                            .addContainerGap())
                );
                painel_interprete_categoriasLayout.setVerticalGroup(
                    painel_interprete_categoriasLayout.createParallelGroup()
                        .addGroup(GroupLayout.Alignment.TRAILING, painel_interprete_categoriasLayout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(interprete_categoria, GroupLayout.PREFERRED_SIZE, 164, GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                            .addGroup(painel_interprete_categoriasLayout.createParallelGroup(GroupLayout.Alignment.TRAILING)
                                .addComponent(btnAvancar, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGroup(painel_interprete_categoriasLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                                    .addComponent(btnRetroceder, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(nome_saudacoes, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
                            .addContainerGap())
                );
            }

            //======== painel_interprete_categorias2 ========
            {
                painel_interprete_categorias2.setBorder(new TitledBorder("Palavras"));
                
                //---- interprete_palavras ----
                interprete_palavras.setHorizontalAlignment(SwingConstants.CENTER);
                interprete_palavras.setIcon(new ImageIcon(GUI.class.getResource("Imagens/Testes/DeafWord.png")));

                //---- btnRetroceder2 ----
                btnRetroceder2.setText("<");
                btnRetroceder2.setToolTipText("Retroceder 2");
                btnRetroceder2.setCursor(new Cursor(Cursor.HAND_CURSOR));

                //---- btnAvancar2 ----
                btnAvancar2.setText(">");
                btnAvancar2.setToolTipText("Avancçar 2");
                btnAvancar2.setCursor(new Cursor(Cursor.HAND_CURSOR));

                //---- Campo palavra ----
                palavra.setHorizontalAlignment(SwingConstants.CENTER);

                //---- btnAdicionar ----
                btnAdicionar.setText("Adicionar");
                btnAdicionar.setToolTipText("Adicionar");
                btnAdicionar.setCursor(new Cursor(Cursor.HAND_CURSOR));

                GroupLayout painel_interprete_categorias2Layout = new GroupLayout(painel_interprete_categorias2);
                painel_interprete_categorias2.setLayout(painel_interprete_categorias2Layout);
                painel_interprete_categorias2Layout.setHorizontalGroup(
                    painel_interprete_categorias2Layout.createParallelGroup()
                        .addGroup(GroupLayout.Alignment.TRAILING, painel_interprete_categorias2Layout.createSequentialGroup()
                            .addContainerGap()
                            .addGroup(painel_interprete_categorias2Layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
                                .addComponent(btnAdicionar, GroupLayout.DEFAULT_SIZE, 205, Short.MAX_VALUE)
                                .addComponent(interprete_palavras, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 205, Short.MAX_VALUE)
                                .addGroup(painel_interprete_categorias2Layout.createSequentialGroup()
                                    .addComponent(btnRetroceder2)
                                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(palavra, GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE)
                                    .addComponent(btnAvancar2)))
                            .addContainerGap())
                );
                painel_interprete_categorias2Layout.setVerticalGroup(
                    painel_interprete_categorias2Layout.createParallelGroup()
                        .addGroup(GroupLayout.Alignment.TRAILING, painel_interprete_categorias2Layout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(interprete_palavras, GroupLayout.PREFERRED_SIZE, 137, GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                            .addGroup(painel_interprete_categorias2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                                .addComponent(btnRetroceder2)
                                .addComponent(palavra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnAvancar2))
                            .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(btnAdicionar)
                            .addGap(12, 12, 12))
                );
            }

            GroupLayout painel_interpreteLayout = new GroupLayout(painel_interprete);
            painel_interprete.setLayout(painel_interpreteLayout);
            painel_interpreteLayout.setHorizontalGroup(
                painel_interpreteLayout.createParallelGroup()
                    .addGroup(painel_interpreteLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(painel_interpreteLayout.createParallelGroup()
                            .addComponent(painel_interprete_categorias, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(painel_interprete_categorias2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                        .addContainerGap())
            );
            painel_interpreteLayout.setVerticalGroup(
                painel_interpreteLayout.createParallelGroup()
                    .addGroup(painel_interpreteLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(painel_interprete_categorias, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 99, Short.MAX_VALUE)
                        .addComponent(painel_interprete_categorias2, GroupLayout.PREFERRED_SIZE, 247, GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())
            );
        }

        GroupLayout contentPaneLayout = new GroupLayout(contentPane);
        contentPane.setLayout(contentPaneLayout);
        contentPaneLayout.setHorizontalGroup(
            contentPaneLayout.createParallelGroup()
                .addGroup(contentPaneLayout.createSequentialGroup()
                    .addGroup(contentPaneLayout.createParallelGroup()
                        .addGroup(contentPaneLayout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(painel_editor, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(painel_interprete, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                        .addComponent(barra_ferramentas, GroupLayout.DEFAULT_SIZE, 1072, Short.MAX_VALUE))
                    .addContainerGap())
        );
        contentPaneLayout.setVerticalGroup(
            contentPaneLayout.createParallelGroup()
                .addGroup(contentPaneLayout.createSequentialGroup()
                    .addComponent(barra_ferramentas, GroupLayout.PREFERRED_SIZE, 35, GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.TRAILING)
                        .addComponent(painel_interprete, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(painel_editor, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addContainerGap())
        );
        pack();
        setLocationRelativeTo(getOwner());
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    public JMenuBar barra_menus;
    private JMenu menu1;
    private JMenuItem menuItem1;
    private JMenuItem menuItem2;
    private JMenuItem menuItem3;
    private JMenuItem menuItem4;
    public JToolBar barra_ferramentas;
    public JButton btnNegrito;
    public JButton btnItalico;
    public JButton btnEsquerda;
    public JButton btnCentralizar;
    public JButton btnDireita;
    public JButton btnPreto;
    public JButton btnAzul;
    public JButton btnVerde;
    public JButton btnLaranja;
    public JButton btnVermelho;
    public JPanel painel_editor;
    public JScrollPane scrollPane1;
    public JTextPane painel_texto;
    public JPanel painel_interprete;
    public JPanel painel_interprete_categorias;
    public JLabel interprete_categoria;
    public JButton btnRetroceder;
    public JButton btnAvancar;
    public JTextField nome_saudacoes;
    public JPanel painel_interprete_categorias2;
    public JLabel interprete_palavras;
    public JButton btnRetroceder2;
    public JButton btnAvancar2;
    public JTextField palavra;
    public JButton btnAdicionar;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}

É a terceira classe Java é a Inicio.java

public class Inicio {

    public static void main(String[] args) {
        Controle c = new Controle();
    }
}

Qualquer coisa entrem em contato com os autores citados logo acima, ou entre em contato comigo mesmo por aqui.

Lembre-se o programa não esta totalmente finalizado ainda tem alguns bugs, mas a ideia principal e inicial está aí é só melhorar.

Link para baixar o aplicativo rodando mesmo sem estar totalmente finalizado.

Deafworf.jar

http://www.4shared.com/file/w5g8zW8Hce/DeafWord.html

Espero que aproveitem.

Jewelry Of Classical Music Volume I

Jewelry Of Classical Music Volume IApplication developed in Java programming language nonprofit desktop based on API’s JLayer, BasicPlayer of JavaZoom. Jewelry Of Classical Music Volume I is a music player still in the experimental phase.

List of songs:

Bach – Toccata e Fuga.
Beethoven – Sonata Claire de Lune 1º Movimento.
Bellini – Capuletos e Montéquios ‘Chi Sei Tu’.
Brhams – Dança Húngara.
Chopin – Noturno op. 15 em Fá Maior.
Mendelsohn – Intermezzo De Sonho De Uma Noite de Verão.
Mozart – Sinfonia nº 40 1º Movimento.
Rossini – O Sítio de Corinto.
Tchaikovsky – Dança Espanhola O Lago Dos Cisnes.
Vivaldi – Quatro estações ‘A Primavera’.

File: Jewelry Of Classical Music Volume I.jar
Download link: http://www.4shared.com/file/YKkCAhBvce/Jewelry_Of_Classical_Music_Vol.html
Size: 43.3MB

Jewelry Of Classical Music Volume IIFile: Jewelry Of Classical Music Volume II.jar
Download link: http://www.4shared.com/file/nT2hNOLNba/Jewelry_Of_Classical_Music_Vol.html

Size: 48.7MB

Many thanks for help to friends:

Matthew Molloy
https://github.com/whamtet?tab=repositories

Johnny  Luo
https://www.facebook.com/lzqwebsoft

JC MOUSE(Julio Cesar Jallaza)
http://jc-mouse.blogspot.com.br/2010/05/reproductor-mp3-en-java.html

JAVA speaks English for YOU

Speak ScreenShortOnline Dictionary, this little app is for you and for all CongdongJava members. It works as following:
– based on Google’s online dict and javazoom.jl.player.Player
– if a word is not found (i.e. not existed or misspelled) nothing happens,
– if your word exists already Button “SPEAK” is enabled and you can hear how to speak
– if your word isn’t existed and Google Online Dict does have this word it will be downloaded to the CURRENT directory (e.g. world.mp3), then SPEAK is enabled.
Enjoy!

Because SUN’s JMF and MP3Plugin are both not very reliable and cause more troubles than funs. The package is jl1.0.1.jar and available on Windows, Linux and OSX.
Download site: http://www.javazoom.net/javalayer/sources.html
http://programmingwiki.de/Sound_Demo_3

////////////////////////////////////////////////////////////////////////////////
// (c) Joe T. Nartca
// Free. Not for commercial purpose.
// Donation: To the Children here.
// http://www.thanhniennews.com/society/poor-vietnamese-boy-hacks-life-without-arms-36897.html
// http://www.thanhniennews.com/society/limbless-soc-trang-girl-lives-life-to-fullest-36762.html
// All Right reserved.
// Last modified: on May 12, 2016 by J. Marcos B.
// Blog: https://isjavado.wordpress.com/
///////////////////////////////////////////////////////////////////////////////

import java.io.*;
import java.net.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

// because SUN's JMF and MP3Plugin are both not very reliable and cause
// more troubles than funs. The package is jl1.0.1.jar and available on
// Windows, Linux and OSX.
// Download site: http://www.javazoom.net/javalayer/sources.html
// http://programmingwiki.de/Sound_Demo_3
import javazoom.jl.player.Player;

public class Speak extends JFrame implements ActionListener {

    private static final long serialVersionUID = 1L;

    private JProgressBar jpb;
    private JTextField word;
    private JButton speak;
    private JLabel msg;
    private String lnk = "https://ssl.gstatic.com/dictionary/static/sounds/de/0/";

    // the constructor
    public Speak() {
        // Size of frame
        this.setSize(340, 160);
        // Title of frame
        this.setTitle("JAVA speaks English for YOU");
        // To set a frame fixed size.
        this.setResizable(false);
        // To set a frame center on screen.
        this.setLocationRelativeTo(null);
        // this.setBounds(200, 50, 340, 160);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);

        JLabel lab = new JLabel("Your word");
        word = new JTextField("community", 16);
        word.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent es) {

                download();
            }
        });

        JPanel j1 = new JPanel();
        j1.add(lab);
        j1.add(word);

        JPanel j2 = new JPanel();
        speak = new JButton("SPEAK");
        speak.addActionListener(this);
        speak.setEnabled(false);
        speak.setToolTipText("Speak");
        speak.setCursor(new Cursor(Cursor.HAND_CURSOR));
        j2.add(speak);

        JPanel jmsg = new JPanel();
        msg = new JLabel("Insert the word you want to hear");
        jmsg.add(msg);

        JPanel jn = new JPanel(new GridLayout(2, 0));
        jn.add(j1);
        jn.add(j2);

        jpb = new JProgressBar(0, 100);
        jpb.setValue(0);
        jpb.setStringPainted(true);
        jpb.setBounds(100, 115, 350, 25);
        jpb.setForeground(Color.blue);

        JPanel pb = new JPanel();
        pb.add(jpb);

        add("North", jmsg);
        add("Center", jn);
        add("South", pb);

    }

    public void actionPerformed(ActionEvent a) {
        String fn = word.getText().trim().toLowerCase() + ".mp3";
        if (!(new File(fn)).exists())

            download();

        else {
            sf = fn;
            ItSounds is = new ItSounds();
        }
    }

    private class ItSounds {

        public ItSounds() {

            mp3Play();
        }

        private Player player;

        // play the MP3Player file to the sound
        private void mp3Play() {
            try {
                player = new Player(new FileInputStream(sf));
                new Thread() {
                    public void run() {
                        try {
                            player.play();
                            player.close();
                        } catch (Exception e) {
                            Toolkit.getDefaultToolkit().beep();
                            JOptionPane.showMessageDialog(null, "ERROR: " + e,
                                    "Speak", JOptionPane.ERROR_MESSAGE);
                        }
                    }
                }.start();
            } catch (Exception e) {
                Toolkit.getDefaultToolkit().beep();
                JOptionPane.showMessageDialog(null, "ERROR: " + e, "Speak",
                        JOptionPane.ERROR_MESSAGE);
            }
        }
    }

    private void download() {
        String fn = word.getText().trim().toLowerCase() + ".mp3";
        if (!(new File(fn)).exists()) {
            speak.setEnabled(false);
            (new FetchSoundFile(fn)).start();
        } else {
            sf = fn;
            msg.setText("<Click SPEAK to hear>");
            ItSounds is = new ItSounds();
            speak.setEnabled(true);
        }
    }

    private String sf;

    private class FetchSoundFile extends Thread {
        public FetchSoundFile(String fn) {
            this.fn = fn;
        }

        private String fn;

        public void run() {
            String fx = word.getText().trim().toLowerCase();
            try {
                URL url = new URL(lnk + fn);
                InputStream inp = url.openStream();
                long fs = url.openConnection().getContentLength();
                if (fs < 1)
                    msg.setText("Downloaded " + fn + " is empty");
                else {
                    int b;
                    long tot = 0;
                    byte[] buf = new byte[fs < 102400 ? 10 : 1024];
                    FileOutputStream fo = new FileOutputStream(fn);
                    for (b = inp.read(buf); b != -1; b = inp.read(buf)) {
                        fo.write(buf, 0, b);
                        tot += b;
                        jpb.setValue((int) ((float) (tot * 100 / fs)));
                    }
                    sf = fn;
                    fo.flush();
                    fo.close();
                    inp.close();
                    speak.setEnabled(true);
                    ItSounds is = new ItSounds();
                    msg.setText("Click SPEAK to hear " + fx);
                }
            } catch (Exception e) {
                e.printStackTrace();
                msg.setText("Unknown " + fx);
            }
        }
    }

    // Main class
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    // look for Nimbus...
                    UIManager
                            .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
                    Speak frame = new Speak();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

}

Metro Tuner Pro In Java

screenshotMetro Tuner Pro 2011 by Sabin Timalsena

A simple Java-based guitar tuner/metronone application.

I built this metronome/guitar tuner application as I was experimenting with Java Swing for UI programming. It allows you to pluck a guitar string and hear the sound for tuning, and also to play the ticking of a metronome at a set BPM. MIDI was used to play the metronome sounds.

For the source code, check this github link:

https://github.com/SabinT/MetroTuner

Guitar Codex Plus 1.0

GuitarCodex_PlusJava Sound & Music Software

Descrição:

GuitarCodexPlus 1.0 pode ser baixado do nosso site aqui de graça. O arquivo GuitarCodex Plus.jar está zipado junto com suas imagens de uso. As versões mais populares do programa são 4.5 e 1.0. O programa fica na subcategoria Produção de Música, que fica dentro de Multimídia. Esse software foi originalmente criado por Robert Leh.

Publisher’s description:

GuitarCodex Plus is a guitar application with a midi interface for players of all levels. You can use it as a tablature chord dictionary and more. GuitarCodex Plus allows you to see and hear chords, scales and displays associated guitar chords in a graphical representation.

Please note all the files in this package are subject to copyright.

Copyright (c) 2002 Robert Leh (r.leh@microtools.de). All Rights Reserved.

Permission to use, copy, and distribute this software and its documentation for NON-COMMERCIAL purposes and without fee is hereby granted provided that this copyright notice appears in all copies. You may not reverse engineer or decompile the software.

THE AUTHOR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THIS SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHOR SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.

Link download: GuitarCodex_Plus.rar 137KB

http://www.4shared.com/zip/K1HP9_9Eba/GuitarCodex_Plus.html