Moving Eyes by Gilbert Le Blanc

This is a short example of a Java Swing GUI with drawing and simple animation. The eyeballs in the GUI follow the mouse cursor as you move the cursor in the drawing area of the GUI.

Introduction

I used Windows 10 and Java 7 to create this GUI. My screen capture software doesn’t recognize the narrow borders of a Windows 10 window.

I wrote 4 Java classes for this simple example. I put the 4 Java classes together to paste as a single example. You should put these classes in separate files when you create your Swing GUI.

I used the model / view / controller model when creating this Swing GUI. This means that:

  1. The view may read values from the model.
  2. The view may not update the model.
  3. The controller will update the model.
  4. The controller will repaint / revalidate the view.

Basically, the model is ignorant of the view and controller. This allows you to change the view and controller from Swing to a web site, or an Android app.

The model / view / controller pattern allows you to focus on one part of the Swing GUI at a time. In general, you’ll create the model first, then the view, and finally the controllers. You will have to go back and add fields to the model. I guarantee that you’ll come up with something you didn’t think of when you created the first cut of the model classes.

Here’s the code:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

//http://java-articles.info/articles/?p=788
public class MovingEyes implements Runnable {

    private static final int drawingWidth = 400;
    private static final int drawingHeight = 400;
    private static final int eyeballHeight = 150;
    private static final int eyeballWidthMargin = 125;

    private DrawingPanel drawingPanel;

    private Eye[] eyes;

    private JFrame frame;

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new MovingEyes());
    }

    public MovingEyes() {
        this.eyes = new Eye[2];
        this.eyes[0] = new Eye(new Point(eyeballWidthMargin, eyeballHeight));
        this.eyes[1] = new Eye(new Point(drawingWidth - eyeballWidthMargin,
                eyeballHeight));
    }

    public void run() {
        frame = new JFrame("Moving Eyes by Gilbert Le Blanc");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        drawingPanel = new DrawingPanel(drawingWidth, drawingHeight);
        frame.add(drawingPanel);

        frame.setSize(800, 600);
    
        frame.setLocationRelativeTo(null);
    
        //frame.setResizable(false);
        // frame.pack();
        // frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public class DrawingPanel extends JPanel {

        private static final long serialVersionUID = -2977860217912678180L;

        private static final int eyeballOuterRadius = 50;
        private static final int eyeballInnerRadius = 20;

        public DrawingPanel(int width, int height) {
            this.addMouseMotionListener(new EyeballListener(this,
                    eyeballOuterRadius - eyeballInnerRadius - 5));
            this.setBackground(Color.WHITE);
            this.setPreferredSize(new Dimension(width, height));
        }

        // images
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);

            g.setColor(Color.BLACK);

            for (Eye eye : eyes) {
                drawCircle(g, eye.getOrigin(), eyeballOuterRadius);
                fillCircle(g, eye.getEyeballOrigin(), eyeballInnerRadius);
            }
        }

        private void drawCircle(Graphics g, Point origin, int radius) {
            g.drawOval(origin.x - radius, origin.y - radius, radius + radius,
                    radius + radius);
        }

        private void fillCircle(Graphics g, Point origin, int radius) {
            g.fillOval(origin.x - radius, origin.y - radius, radius + radius,
                    radius + radius);
        }

    }

    public class Eye {
        private final Point origin;
        private Point eyeballOrigin;

        public Eye(Point origin) {
            this.origin = origin;
            this.eyeballOrigin = origin;
        }

        public Point getEyeballOrigin() {
            return eyeballOrigin;
        }

        public void setEyeballOrigin(Point eyeballOrigin) {
            this.eyeballOrigin = eyeballOrigin;
        }

        public Point getOrigin() {
            return origin;
        }

    }

    public class EyeballListener extends MouseMotionAdapter {

        private final double eyeballDistance;

        private final DrawingPanel drawingPanel;

        public EyeballListener(DrawingPanel drawingPanel, double eyeballDistance) {
            this.drawingPanel = drawingPanel;
            this.eyeballDistance = eyeballDistance;
        }


        // mouse detector
        public void mouseMoved(MouseEvent event) {
            Point p = event.getPoint();
            for (Eye eye : eyes) {
                Point origin = eye.getOrigin();
                double theta = Math.atan2((double) (p.y - origin.y),
                        (double) (p.x - origin.x));
                int x = (int) Math.round(Math.cos(theta) * eyeballDistance)
                        + origin.x;
                int y = (int) Math.round(Math.sin(theta) * eyeballDistance)
                        + origin.y;
                eye.setEyeballOrigin(new Point(x, y));
            }

            drawingPanel.repaint();
        }

    }

}

You can use the JFrame and DrawingPanel code as a base for any Swing GUI where you need to draw.

Model

The Eye class is a Java object that holds the origin of the eye (circle) and the origin of the eyeball. The Eye class is the model in this simple example.

View

The MovingEyes class is the class that defines the JFrame. The MovingEyes class is part of the view. The main method of this class invokes the SwingUtilities invokeLater method to ensure that the Swing components are defined and modified on the Event Dispatch thread.

We use a JFrame. We do not extend a JFrame. The only time you extend a Swing component, or any Java class, is when you want to override one of the class methods. We’ll see this when I talk about the DrawingPanel.

The constructor of the MovingEyes class defines 2 instances of the Eye class. The run method defines the JFrame. The code in the run method will be similar for all Swing GUIs.

The DrawingPanel class makes up the rest of the view. The DrawingPanel class extends JPanel because we want to override the paintComponent method. The constructor of the DrawingPanel class sets the preferred size of the drawing area, and adds the mouse motion listener. The mouse motion listener is the controller of this Swing GUI.

The paintComponent method of the DrawingPanel class first calls the super paintComponent method. This maintains the Swing paint chain, and should always be the first statement of the overwritten paintComponent method.

The rest of the code in the paintComponent method of the DrawingPanel class draws the eyes. We only have drawing (painting) code in the paintComponent method. Control code belongs in the controller.

Controller

The EyeballListener class is the controller class. You can have more than one controller class in a more complicated Swing GUI.

The EyeballListener class extends the MouseMotionAdapter. You can implement the MouseMotionListener. I’m overriding one method, so the code is shorter when I extend the MouseMotionAdapter.

The mouseMoved method of the EyeballListener class fires a MouseEvent when the mouse is moved. We calculate a new position for the center of an eyeball by finding the theta angle from the center of the eye to the mouse position. The theta angle is used to calculate the new center of the eyeball.

Each Eye instance is updated separately in the for loop. After both eyes are updated, the drawing panel is repainted. This happens so fast that there’s no need for an animation loop in a separate thread.

An animation loop updates the model, draws the view, and waits for a specified period of time. You would use a separate thread for the animation loop, so that the GUI on the Event Dispatch thread stays responsive. If your GUI is not responsive, you’re probably doing too much work on the Event Dispatch thread.

Site: http://java-articles.info/articles/?p=788
Java archive: Moving Eyes by Gilbert Le Blanc.jar
Link: https://www.4shared.com/file/Qm-sr08-ei/Moving_Eyes_by_Gilbert_Le_Blan.html

Anúncios

Create Java MP3 To Wav Converter

 All converted file has name like original file with added .wav at the end and located in the same directory with original mp3 file.
You can convert multiple files in a time.

Mp3ToWavConvert.java

/**
 * Created by Mohd Anis
 * on Jan 30, 2011
 * Files : Mp3ToWavConvert.java; SwingWorker.java
 * API javazoom.jar
 * Original by: http://java2everyone.blogspot.com.br/2011/01/create-java-mp3-to-wav-converter.html
 * https://pastebin.com/raw/qHjM6TEh
 * https://pastebin.com/raw/Q2tPqWdJ
 * Last modified: 2017/04/04 by J. Marcos B.
 * Site: https://isjavado.wordpress.com/2017/04/04/create-java-mp3-to-wav-converter/
 */

import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;
import javax.swing.filechooser.FileFilter;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.JLabel;

import javazoom.jl.converter.Converter;

public class Mp3ToWavConvert extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel contentPane;

    JFileChooser jfc;
    SwingWorker worker;
    File selectedFile;
    JButton btnMp3 = new JButton();
    JLabel lblStatus = new JLabel("STATUS : No File To Convert.");

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Mp3ToWavConvert frame = new Mp3ToWavConvert();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    void updateJlabel(final String jlabelText) {
        Runnable doSetProgressBarValue = new Runnable() {
            public void run() {
                lblStatus.setText(jlabelText);
            }
        };
        SwingUtilities.invokeLater(doSetProgressBarValue);
    }

    Object doWork() {
        File[] groupOfFiles = jfc.getSelectedFiles();
        int numberOfFiles = groupOfFiles.length;
        for (int i = 0; i < numberOfFiles; i++) {
            btnMp3.setEnabled(false);
            selectedFile = groupOfFiles[i];
            if (selectedFile.getName().toLowerCase().endsWith(".mp3")) {
                try {
                    updateJlabel("Please wait : " + selectedFile.getName()
                            + " still in converting...");
                    Converter myConverter = new Converter();
                    myConverter.convert(selectedFile.getPath(),
                            selectedFile.getPath() + ".wav");

                    JOptionPane.showMessageDialog(null, "File converted.",
                            "Free Java MP3 To Wav Converter",
                            JOptionPane.INFORMATION_MESSAGE);

                } catch (Exception error) {
                    // updateJlabel("Converting Process Fail For : "+selectedFile.getName());
                    Toolkit.getDefaultToolkit().beep();
                    JOptionPane.showMessageDialog(null,
                            "Converting Process Fail!", "ERROR!",
                            JOptionPane.ERROR_MESSAGE);
                }
            } else {
                // updateJlabel(selectedFile.getName()+" not a MP3 File");
                Toolkit.getDefaultToolkit().beep();
                JOptionPane.showMessageDialog(null, selectedFile.getName()
                        + " not a MP3 file!", "ERROR!",
                        JOptionPane.ERROR_MESSAGE);
            }
        }
        return new Object();
    }

    // Class TypeOfFile
    class TypeOfFile extends FileFilter {
        // Type of file that should be display in JFileChooser will be set here
        // We choose to display only directory and mp3 file
        public boolean accept(File f) {
            return f.getName().toLowerCase().endsWith(".mp3")
                    || f.isDirectory();
        }

        // Set description for the type of file that should be display
        public String getDescription() {
            return ".mp3 files";
        }
    }

    /**
     * Create the frame.
     */
    public Mp3ToWavConvert() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // setBounds(100, 100, 450, 300);
        this.setSize(500, 300);
        this.setTitle("Free Java MP3 To Wav Converter");
        // Tamanho fixo do programa, sem alteção
        this.setResizable(false);
        // Deixa o programa no meio da tela, centralizado
        this.setLocationRelativeTo(null);

        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        btnMp3.setFont(new Font("Tahoma", Font.BOLD, 12));

        btnMp3.setText("Mp3");
        btnMp3.setToolTipText("Mp3");
        btnMp3.setCursor(new Cursor(Cursor.HAND_CURSOR));
        btnMp3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                if (e.getSource() == btnMp3) {
                    btnMp3.setEnabled(false);

                    jfc = new JFileChooser();
                    jfc.setMultiSelectionEnabled(true);
                    jfc.setFileFilter(new TypeOfFile());
                    jfc.setDialogTitle("Select File To Convert");
                    // The method showDialog(int) from the type Activity is
                    // deprecated.
                    // int a = jfc.showDialog(this, "Convert");
                    int a = jfc.showSaveDialog(null);
                    if (a == JFileChooser.APPROVE_OPTION) {
                        worker = new SwingWorker() {
                            public Object construct() {
                                return doWork();
                            }

                            public void finished() {
                                btnMp3.setEnabled(true);
                                updateJlabel("STATUS : No File To Convert");
                                // JOptionPane.showMessageDialog(null, "",
                                // "ERROR",
                                // JOptionPane.ERROR_MESSAGE);
                            }
                        };
                        worker.start();
                    } else {
                        btnMp3.setEnabled(true);
                    }
                }
            }
        });
        btnMp3.setBounds(201, 237, 89, 23);
        contentPane.add(btnMp3);

        JLabel lblInformation = new JLabel();
        lblInformation.setHorizontalAlignment(SwingConstants.CENTER);
        lblInformation.setFont(new Font("Arial", Font.BOLD, 12));
        lblInformation
                .setText("<html>     All converted file has name like original file with added .wav at the end and located in the same "
                        + "directory with original mp3 file."
                        + "
You can convert multiple files in a time.</html>");
        lblInformation.setBounds(73, 76, 371, 100);
        contentPane.add(lblInformation);

        lblStatus.setBounds(73, 187, 371, 14);
        lblStatus.setHorizontalAlignment(SwingConstants.CENTER);
        contentPane.add(lblStatus);

        JLabel lblTitle = new JLabel("Mp3 To Wav");
        lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
        lblTitle.setFont(new Font("Arial Black", Font.BOLD, 24));
        lblTitle.setBounds(73, 11, 371, 54);
        contentPane.add(lblTitle);
    }
}
// I will put this complete source codes in my blog
// http://java2everyone.blogspot.com.br/2011/01/create-java-mp3-to-wav-converter.html
SwingWorker.java
import javax.swing.SwingUtilities;

/**
 * This is the 3rd version of SwingWorker (also known as SwingWorker 3), an
 * abstract class that you subclass to perform GUI-related work in a dedicated
 * thread. For instructions on using this class, see:
 *
 * http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html
 *
 * Note that the API changed slightly in the 3rd version: You must now invoke
 * start() on the SwingWorker after creating it.
 */
public abstract class SwingWorker {
    private Object value; // see getValue(), setValue()
    private Thread thread;

    /**
     * Class to maintain reference to current worker thread under separate
     * synchronization control.
     */
    private static class ThreadVar {
        private Thread thread;

        ThreadVar(Thread t) {
            thread = t;
        }

        synchronized Thread get() {
            return thread;
        }

        synchronized void clear() {
            thread = null;
        }
    }

    private ThreadVar threadVar;

    /**
     * Get the value produced by the worker thread, or null if it hasn't been
     * constructed yet.
     */
    protected synchronized Object getValue() {
        return value;
    }

    /**
     * Set the value produced by worker thread
     */
    private synchronized void setValue(Object x) {
        value = x;
    }

    /**
     * Compute the value to be returned by the <code>get</code> method.
     */
    public abstract Object construct();

    /**
     * Called on the event dispatching thread (not on the worker thread) after
     * the <code>construct</code> method has returned.
     */
    public void finished() {

    }

    /**
     * A new method that interrupts the worker thread. Call this method to force
     * the worker to stop what it's doing.
     */
    public void interrupt() {
        Thread t = threadVar.get();
        if (t != null) {
            t.interrupt();
        }
        threadVar.clear();
    }

    /**
     * Return the value created by the <code>construct</code> method. Returns
     * null if either the constructing thread or the current thread was
     * interrupted before a value was produced.
     *
     * @return the value created by the <code>construct</code> method
     */
    public Object get() {
        while (true) {
            Thread t = threadVar.get();
            if (t == null) {
                return getValue();
            }
            try {
                t.join();
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt(); // propagate
                return null;
            }
        }
    }

    /**
     * Start a thread that will call the <code>construct</code> method and then
     * exit.
     */
    public SwingWorker() {
        final Runnable doFinished = new Runnable() {
            public void run() {
                finished();
            }
        };

        Runnable doConstruct = new Runnable() {
            public void run() {
                try {
                    setValue(construct());
                } finally {
                    threadVar.clear();
                }

                SwingUtilities.invokeLater(doFinished);
            }
        };

        Thread t = new Thread(doConstruct);
        threadVar = new ThreadVar(t);
    }

    /**
     * Start the worker thread.
     */
    public void start() {
        Thread t = threadVar.get();
        if (t != null) {
            t.start();
        }
    }

    public Thread getThread() {
        return thread;
    }

    public void setThread(Thread thread) {
        this.thread = thread;
    }
}
// I will put this complete source codes in my blog
// My blog url is http://java2everyone.blogspot.com
Thank you all.

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();
                }
            }
        });
    }

}