Problema com exercício simples

Olá pessoal, sou novo por aqui e também novo na linguagem.

Recentemente meu professor pediu para eu elaborar o seguinte exercício:

[b]Jogo da forca

Um usuário entrará com 10 palavras. O sistema irá sortear um e exibir como dica a quantidade de letras. O usuário que estiver jogando terá sete chances para acertar antes de ser enforcado. Conforme usuário for acertando as letras o sistema vai exibindo.[/b]

Acontece que estamos quebrando a cabeça em sala pra tentar resolver esse problema e não estamos conseguindo achar uma solução (estamos na segunda semana de aprendizado da linguagem), aparentemente o exercício é bem simples, mas não sei se estamos aptos a resolvê-lo, já que não temos muito embasamento na linguagem…

Qualquer dúvida ou ajuda ficaria muito grato.

Att,

Eduardo

Posta aí o que vc já fez de código que o pessoal te ajuda. Agora alguém pra fazer sua tarefa toda já fica complicado.

[]s

Visão por cima:

Pesquisa isto, e “tenta juntar”

Entrada de dados - Para entrar com as 10 palavras, talvez seja necessario um for.
Processamento - Usa uma função randomica para fazer o sorteio.
Processamento - Separa letra por letra para fazer a compração.
Processamento - Mostra o resultado da função com contagem de letras.
Entrada de dados - Examina a entrada.
Processamento - Conta sete entradas.
Saida - Se a palavra(letra) for correspondente exibe.

Em síntese pesquise por entrada e saida de dados em JAVA, pesquise por função randomica, separação de palavras, loop em java.

Obrigado pelo feedback rápido pessoal, vou dar uma pesquisada nesses tópicos sugeridos e posto aqui o resultado do que a gente for “estragando” (hehehe) no nosso pequeno projeto.

Atenciosamente,

Eduardo.

Caro douglaskd,

Muito obrigado pela força!! Já havia começado o projeto, mas sem interface gráfica, pois não tenho nenhuma experiência nela. Aproveitei que vc postou um cf com interface e mesclei o meu código fonte com alguns pontos do seu. A lógica precisou de uma refinada, mas acho que tô no caminho certo.

Mais uma vez, muito obrigado pela força meu amigo!!

Abraço,

Eduardo.

cara tenho dois prototipos de forca aqui, bem bacanas, estao um pouco bagunçados, mas da de olhar, estudar, e ver o que se aproveita. tem muita coisa boa ali… mas ta pulando e tem uns bugzinhos, que tenho que verificar…

mas isso não é simples e nem para duas semanas de estudo, precisa muito mais.

aguardo algum retorno, pode ser para o meu email. raghy30@hotmail.com

pode por email aqui?

[/code][code]
/*
 * Forca.java
 *
 * Created on 6 de Agosto de 2009, 09:07
 */
package jogo_da_forca;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JOptionPane;

import javax.swing.*;

/**
 *
 * @author  raghyjose
 */
public class Forca extends javax.swing.JFrame {

    public double x = 0;

    public Forca() {
        initComponents();
        setLocationRelativeTo(null);
    }
     String palavras[];
   
    public void imagesNoErro() {
              //aqui vai as imagens para os erros...    
         if (realTotalErros==20) {
           jLErrou.setIcon(f0);
        }
         if (realTotalErros==19) {
           jLErrou.setIcon(f1);
        }
         if (realTotalErros==18) {
            jLErrou.setIcon(f2);
        }       
         if (realTotalErros==17) {
          jLErrou.setIcon(f3);
        }
         if (realTotalErros==16) {
          jLErrou.setIcon(f4);
        }
         if (realTotalErros==15) {
          jLErrou.setIcon(f5);
        }
         if (realTotalErros==14) {
          jLErrou.setIcon(f6);
        }
         if (realTotalErros==13) {
          jLErrou.setIcon(f7);
        }
         if (realTotalErros==12) {
          jLErrou.setIcon(f8);
        }
         if (realTotalErros==11) {
          jLErrou.setIcon(f9);
        }
         if (realTotalErros==10) {
          jLErrou.setIcon(f10);
        }
         if (realTotalErros==9) {
          jLErrou.setIcon(f11);
        }
         if (realTotalErros==8) {
          jLErrou.setIcon(f12);
        }
         if (realTotalErros==7) {
          jLErrou.setIcon(f13);
        }
         if (realTotalErros==6) {
          jLErrou.setIcon(f14);
        }
         if (realTotalErros==5) {
          jLErrou.setIcon(f15);
        }
         if (realTotalErros==4) {
          jLErrou.setIcon(f16);
        }
         if (realTotalErros==3) {
          jLErrou.setIcon(f17);
        }
         if (realTotalErros==2) {
          jLErrou.setIcon(f18);
        }
         if (realTotalErros==1) {
          jLErrou.setIcon(f19);
        }
         if (realTotalErros==0) {
          jLErrou.setIcon(f20);
        }
        
            
        
    }
    
    public void pegaPalavra(){
         //colocar exceção para textfield nulo
            jTletra.requestFocus();
            //captura a letra digitada
            String letraQualquer = jTletra.getText();
            //poe letras para minusculo
            String letra = letraQualquer.toLowerCase();           
            //capturada nao precisa mais, vinha do getText()
            String palavraEscolhidaCapturada = palavraEscolhida;
            pec = palavraEscolhidaCapturada.indexOf(letra);
            //acerta o valor porque array começa com zero
            pec2 = pec + 1;
            //no caso de duas ocorrencias, captura o ultimo index...
            pec3 = palavraEscolhidaCapturada.lastIndexOf(letra);
            
            //arruma o array
            pec4 = pec3 + 1;
            
    }
    
    public void palavrasAleatorias(){
         
        palavras = new String[26];
        palavras[0] = "casa";
                    palavras[1] = "agua";
                    palavras[2] = "carro";
                    palavras[3] = "chuva";
                    palavras[4] = "roupa";
                    palavras[5] = "moda";
                    palavras[6] = "rua";
                    palavras[7] = "lua";
                    palavras[8] = "fruto";
                    palavras[9] = "bola";
                    //palavras[10]="medida";
                    palavras[10] = "curva";
                    palavras[11] = "asa";
                    palavras[12] = "crime";
                    palavras[13] = "gol";
                    palavras[14] = "arma";
                    palavras[15] = "nadar";
                    palavras[16] = "jogar";
                    palavras[17] = "ativo";
                    palavras[18] = "vida";
                    palavras[19] = "ato";
                    palavras[20] = "seta";
                    palavras[21] = "meta";
                    palavras[22] = "reta";
                    palavras[23] = "cueca";
                    palavras[24] = "mesa";
                    palavras[25] = "quadro";
                    
    }
  
    ImageIcon f0 = new ImageIcon("C:/IMAGENS/forcadesenho0.gif");
      ImageIcon f1 = new ImageIcon("C:/IMAGENS/forcadesenho1.gif");
       ImageIcon f2 = new ImageIcon("C:/IMAGENS/forcadesenho2.gif");
        ImageIcon f3 = new ImageIcon("C:/IMAGENS/forcadesenho3.gif");
         ImageIcon f4 = new ImageIcon("C:/IMAGENS/forcadesenho4.gif");
          ImageIcon f5 = new ImageIcon("C:/IMAGENS/forcadesenho5.gif");
           ImageIcon f6 = new ImageIcon("C:/IMAGENS/forcadesenho6.gif");
            ImageIcon f7 = new ImageIcon("C:/IMAGENS/forcadesenho7.gif");
             ImageIcon f8 = new ImageIcon("C:/IMAGENS/forcadesenho8.gif");
              ImageIcon f9 = new ImageIcon("C:/IMAGENS/forcadesenho9.gif");
               ImageIcon f10 = new ImageIcon("C:/IMAGENS/forcadesenho10.gif");
                ImageIcon f11 = new ImageIcon("C:/IMAGENS/forcadesenho11.gif");
                 ImageIcon f12 = new ImageIcon("C:/IMAGENS/forcadesenho12.gif");
                  ImageIcon f13 = new ImageIcon("C:/IMAGENS/forcadesenho13.gif");
                   ImageIcon f14 = new ImageIcon("C:/IMAGENS/forcadesenho14.gif");
                    ImageIcon f15 = new ImageIcon("C:/IMAGENS/forcadesenho15.gif");
                     ImageIcon f16 = new ImageIcon("C:/IMAGENS/forcadesenho16.gif");
 ImageIcon f17 = new ImageIcon("C:/IMAGENS/forcadesenho17.gif");
  ImageIcon f18 = new ImageIcon("C:/IMAGENS/forcadesenho18.gif");
   ImageIcon f19 = new ImageIcon("C:/IMAGENS/forcadesenho19.gif");
    ImageIcon f20 = new ImageIcon("C:/IMAGENS/forcadesenho20.gif");
    //para saber se na primeira vez, usou o botão...
    boolean inicia=false;
    
    //linha 540 esta palavra ja foi dita... quando houver... 
    String valores[] = new String[10];
    int c = -1;
    //letras
    DefaultListModel model = new DefaultListModel();
    JList list = new JList(model);
    //palavras ja usadas
    DefaultListModel model2 = new DefaultListModel();
    JList list2 = new JList(model2);
    int letraDita = 0;
    //hh é variavel do array palavras 2
    int h = 0;
    int erros = 0;
    //int totalErros=20;
    int realTotalErros = 20;
    int tamanho = 0;
    String palavraEscolhida = "";
    //vitorias
    int vitorias = 0;
    
    //derrotas 
    int derrotas =0;
    //t e para aumentar o numero do array de palavras ditas
    int t = 0;
    int pos = 0;
    int z = 0;
    int i = 0;
    boolean letraJaDita = false;
    int pec3 = 0;
    int pec4 = 0;
    int pec2 = 0;
    int pec = 0;
    int lastX = 0;
    int b = 1;
    boolean palavraJaDita = false;
    boolean espaco=false;
    //esolher palavra automatico
    //escolhe palavra automaticamente...
    int d = -1;
     private Clip clip;   
      private int contador_sons = 0;  
      private String[] colecao_sons = { "25comdoisdados", "26comumdado","27inicio","37_recua8casas","39flauta_bomparaavanca9","ganhou","perdeu" };   
      //private static final String LOCAL_SONS = "c:/sonsjogo37/"; 
        private static final String LOCAL_SONS = "c:/sonsjogo37/";
    
    
         public void carregarSom(int posSom) { 
        File soundFile = new File(LOCAL_SONS +colecao_sons[posSom]+".wav");   
        AudioInputStream sound = null;   
        try {   
            sound = AudioSystem.getAudioInputStream(soundFile);   
        } catch (UnsupportedAudioFileException e) {   
            e.printStackTrace();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        DataLine.Info info = new DataLine.Info(Clip.class, sound.getFormat());   
        try {   
            clip = (Clip) AudioSystem.getLine(info);   
        } catch (LineUnavailableException e) {   
            e.printStackTrace();   
        }   
        try {   
            clip.open(sound);   
        } catch (LineUnavailableException e) {   
            e.printStackTrace();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        contador_sons++;   
     }   
  
    public void tocaSom() {   
        clip.start();   
    } 

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jBescolhePalavra = new javax.swing.JButton();
        jLpalavraCerta = new javax.swing.JLabel();
        jLpalavraCerta2 = new javax.swing.JLabel();
        jLletrasDitas = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jLErrou = new javax.swing.JLabel();
        jPanel4 = new javax.swing.JPanel();
        jTl1 = new javax.swing.JTextField();
        jTl2 = new javax.swing.JTextField();
        jTl3 = new javax.swing.JTextField();
        jTl4 = new javax.swing.JTextField();
        jTl5 = new javax.swing.JTextField();
        jPanel5 = new javax.swing.JPanel();
        jLlugarLetra = new javax.swing.JLabel();
        jPanel6 = new javax.swing.JPanel();
        jLvitorias = new javax.swing.JLabel();
        jLderrotas = new javax.swing.JLabel();
        jPanel7 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jTletra = new javax.swing.JTextField();
        jBconfirmaPalavra = new javax.swing.JButton();
        jPanel8 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jLerros = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuBar2 = new javax.swing.JMenuBar();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenuBar3 = new javax.swing.JMenuBar();
        jMenu3 = new javax.swing.JMenu();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItem6 = new javax.swing.JMenuItem();

        jPanel1.setBackground(new java.awt.Color(153, 153, 255));
        jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 868, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 509, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Jogo Da Forca");

        jPanel2.setBackground(new java.awt.Color(153, 153, 255));
        jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jPanel2.setEnabled(false);

        jBescolhePalavra.setFont(new java.awt.Font("Tahoma", 0, 14));
        jBescolhePalavra.setText("inicia");
        jBescolhePalavra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBescolhePalavraActionPerformed(evt);
            }
        });

        jLpalavraCerta2.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLpalavraCerta2.setText("Sera que vc acerta a palavra?");

        jLletrasDitas.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLletrasDitas.setForeground(new java.awt.Color(255, 0, 0));
        jLletrasDitas.setText("_____nenhuma letra dita por enquanto_____");

        jLabel3.setText("A palavra era: ");

        jLErrou.setText("jLerros");

        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel3Layout.createSequentialGroup()
                .add(20, 20, 20)
                .add(jLErrou)
                .addContainerGap(240, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .add(jLErrou)
                .addContainerGap(632, Short.MAX_VALUE))
        );

        jTl1.setBackground(new java.awt.Color(204, 0, 204));
        jTl1.setEditable(false);
        jTl1.setFont(new java.awt.Font("Tahoma", 0, 26));

        jTl2.setBackground(new java.awt.Color(204, 0, 204));
        jTl2.setEditable(false);
        jTl2.setFont(new java.awt.Font("Tahoma", 0, 26));

        jTl3.setBackground(new java.awt.Color(204, 0, 204));
        jTl3.setEditable(false);
        jTl3.setFont(new java.awt.Font("Tahoma", 0, 26));

        jTl4.setBackground(new java.awt.Color(204, 0, 204));
        jTl4.setEditable(false);
        jTl4.setFont(new java.awt.Font("Tahoma", 0, 26));

        jTl5.setBackground(new java.awt.Color(204, 0, 204));
        jTl5.setEditable(false);
        jTl5.setFont(new java.awt.Font("Tahoma", 0, 26));

        org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel4Layout.createSequentialGroup()
                .add(27, 27, 27)
                .add(jTl1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 54, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jTl2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 27, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jTl3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jTl4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 27, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jTl5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(59, Short.MAX_VALUE))
        );

        jPanel4Layout.linkSize(new java.awt.Component[] {jTl1, jTl2, jTl3, jTl4, jTl5}, org.jdesktop.layout.GroupLayout.HORIZONTAL);

        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE, false)
                    .add(jTl2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jTl3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jTl4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jTl5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jTl1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 39, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel4Layout.linkSize(new java.awt.Component[] {jTl1, jTl2, jTl3, jTl4, jTl5}, org.jdesktop.layout.GroupLayout.VERTICAL);

        jLlugarLetra.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLlugarLetra.setText("Esta letra esta em _-_  lugar na palavra");

        org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .add(jLlugarLetra)
                .addContainerGap(132, Short.MAX_VALUE))
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel5Layout.createSequentialGroup()
                .add(jLlugarLetra)
                .addContainerGap(58, Short.MAX_VALUE))
        );

        jLvitorias.setFont(new java.awt.Font("Tahoma", 1, 13));
        jLvitorias.setText("Vitorias:     ");

        jLderrotas.setFont(new java.awt.Font("Tahoma", 1, 13));
        jLderrotas.setText("Derrotas:");

        org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jLvitorias)
                    .add(jLderrotas))
                .addContainerGap(15, Short.MAX_VALUE))
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel6Layout.createSequentialGroup()
                .add(jLvitorias, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 34, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(18, 18, 18)
                .add(jLderrotas)
                .addContainerGap(32, Short.MAX_VALUE))
        );

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel1.setText("Digite uma letra:");

        jTletra.setBackground(new java.awt.Color(204, 0, 204));
        jTletra.setFont(new java.awt.Font("Tahoma", 0, 26));
        jTletra.setDisabledTextColor(new java.awt.Color(153, 153, 0));
        jTletra.setFocusCycleRoot(true);
        jTletra.setFocusTraversalPolicyProvider(true);
        jTletra.setSelectionColor(new java.awt.Color(153, 0, 255));
        jTletra.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jTletraFocusGained(evt);
            }
        });
        jTletra.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTletraKeyPressed(evt);
            }
        });

        jBconfirmaPalavra.setFont(new java.awt.Font("Tahoma", 0, 14));
        jBconfirmaPalavra.setMnemonic(KeyEvent.VK_Z);
        jBconfirmaPalavra.setText("confirma");
        jBconfirmaPalavra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBconfirmaPalavraActionPerformed(evt);
            }
        });
        jBconfirmaPalavra.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jBconfirmaPalavraKeyPressed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel1)
                .add(18, 18, 18)
                .add(jTletra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 46, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(18, 18, 18)
                .add(jBconfirmaPalavra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 106, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(jTletra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 37, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jBconfirmaPalavra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 42, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(jLabel1))
                .addContainerGap(22, Short.MAX_VALUE))
        );

        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel2.setText("Voce disse as seguintes letras ate agora:");

        jLerros.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLerros.setText("Voce ainda nao errou e pode errar  20 vezes.");

        org.jdesktop.layout.GroupLayout jPanel8Layout = new org.jdesktop.layout.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jLabel2)
                    .add(jLerros))
                .addContainerGap(161, Short.MAX_VALUE))
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel2)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(jLerros)
                .addContainerGap(24, Short.MAX_VALUE))
        );

        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel2Layout.createSequentialGroup()
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(29, 29, 29)
                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jPanel2Layout.createSequentialGroup()
                                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                                        .add(jPanel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                    .add(jLpalavraCerta2)
                                    .add(jPanel8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                                .add(18, 18, 18)
                                .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(jPanel2Layout.createSequentialGroup()
                                .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 272, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(jLletrasDitas)))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(482, 482, 482)
                        .add(jBescolhePalavra)))
                .add(36, 36, 36)
                .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(508, 508, 508)
                .add(jLpalavraCerta)
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup()
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(92, 92, 92)
                        .add(jLpalavraCerta))
                    .add(jPanel2Layout.createSequentialGroup()
                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jPanel2Layout.createSequentialGroup()
                                .add(27, 27, 27)
                                .add(jLpalavraCerta2))
                            .add(jBescolhePalavra))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jPanel2Layout.createSequentialGroup()
                                .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(jPanel6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jLabel3)
                            .add(jPanel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(18, 18, 18)
                        .add(jPanel8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jLletrasDitas, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 34, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(255, 255, 255))
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jMenu1.setText("Ajuda");

        jMenuItem1.setText("Instrucoes basicas");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuItem2.setText("Sair do Jogo");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem2);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Ajuda");

        jMenuItem3.setText("Instrucoes basicas");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu2.add(jMenuItem3);

        jMenuItem4.setText("Sair do Jogo");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu2.add(jMenuItem4);

        jMenuBar2.add(jMenu2);

        jMenu3.setText("Ajuda");

        jMenuItem5.setText("Instrucoes basicas");
        jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu3.add(jMenuItem5);

        jMenuItem6.setText("Sair do Jogo");
        jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu3.add(jMenuItem6);

        jMenuBar3.add(jMenu3);

        setJMenuBar(jMenuBar3);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 1045, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(29, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
        );

        pack();
    }// </editor-fold>                        

    private void jBescolhePalavraActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        //para a primeira vez
        //ve se botao 4 e 5 estao funcionando
       
        inicia=true;
        jTl5.setEnabled(true);
        jTl4.setEnabled(true);

        //deixa os textfields vazios
        jTl1.setText("");
        jTl2.setText("");
        jTl3.setText("");
        jTl4.setText("");
        jTl5.setText("");


        String palavras[] = new String[13];
        palavras[0] = "casa";
        palavras[1] = "agua";
        palavras[2] = "carro";
        palavras[3] = "chuva";
        palavras[4] = "roupa";
        palavras[5] = "moda";
        palavras[6] = "rua";
        palavras[7] = "lua";
        palavras[8] = "fruto";
        palavras[9] = "bola";
        //palavras[10]="medida";  
        palavras[10] = "curva";
        palavras[11] = "asa";
        palavras[12] = "crime";





        int laco3 = 0;
        while (laco3 == 0) {

            x = Math.random() * 12;
            b = (int) x;
            String b11 = String.valueOf(b);

            palavraEscolhida = palavras[b];
          //  tamanho = palavras[b].length();
           // jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");



            if (model2.contains(palavraEscolhida)) {
                palavraJaDita = true;
            } else {
                d = d + 1;
                model2.add(d, palavraEscolhida);
                laco3 = 1;
            }
        }
        if (tamanho == 5) {
            jTl4.setVisible(true);
            jTl5.setVisible(true);
        }


        if (tamanho == 4) {
            jTl5.setVisible(false);
            jTl4.setVisible(true);
        }


        if (tamanho == 3) {
            jTl4.setVisible(false);
            jTl5.setVisible(false);
        }
        jBescolhePalavra.setVisible(false);

    
    }                                                

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
      Ajuda adCli=new Ajuda(); adCli.setVisible(true);adCli.setLocationRelativeTo(null);
       // jDdesktop.add(adCli);
    //    jDdesktop.getDesktopManager().activateFrame(adCli);
    }                                          

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        System.exit(0);
           
    }                                          

    private void jBconfirmaPalavraKeyPressed(java.awt.event.KeyEvent evt) {                                             
       
    }                                            

    private void jBconfirmaPalavraActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        if (inicia==true){
       
             //colocar exceção para textfield nulo
            jTletra.requestFocus();
            //captura a letra digitada
            String letraQualquer = jTletra.getText();
            //poe letras para minusculo
            String letra = letraQualquer.toLowerCase();           
            //capturada nao precisa mais, vinha do getText()
            String palavraEscolhidaCapturada = palavraEscolhida;
            pec = palavraEscolhidaCapturada.indexOf(letra);
            //acerta o valor porque array começa com zero
            pec2 = pec + 1;
            //no caso de duas ocorrencias, captura o ultimo index...
            pec3 = palavraEscolhidaCapturada.lastIndexOf(letra);
            
            //arruma o array
            pec4 = pec3 + 1;
                    
           
           if (letra.equals("") ){
                JOptionPane.showMessageDialog(null, "Espaco em branco!!", "Digite uma Letra", JOptionPane.INFORMATION_MESSAGE);
                espaco=true;
                pec2=0; pec4=0;
            }
            
            
            //teste para duas letras, nao valer. ok funcionou... nao vale duas letras.
            if (letra.length()>1 ){
                JOptionPane.showMessageDialog(null, "Somente uma letra.", "Digite uma Letra", JOptionPane.INFORMATION_MESSAGE);
                espaco=true;
                pec2=0; pec4=0;
            }
            
            
            //se a letra for igual, senao...
            if (pec2== pec4) {
                jLlugarLetra.setText("A letra  " + letra + " esta na posicao" + pec2);
            } else {
                jLlugarLetra.setText("A letra  " + letra + " esta na posicao " + pec2 + " e " + pec4);
            }            
            //teste para ver se assim para o pula pula, fazer os calculos,
            //todos antes de por a letra...
            if (model.contains(letra)) {
                JOptionPane.showMessageDialog(null, "Esta letra ja foi dita!", "Letra ja dita", JOptionPane.INFORMATION_MESSAGE);
                jTletra.setText("");
                letraJaDita = true;
                
            } else if(espaco!=true) {
                c = c + 1;
                model.add(c, letra);
                jLletrasDitas.setText("" + model + "");
                jTletra.setText("");
                //para teste -System.out.println("model" + model);
                letraJaDita = false;
            }
                     
            //achar uma excecao caso a letra nao exista ou   _____ -ERROS  ____ ---
            if (pec2 <= 0) {
                jLlugarLetra.setText("A letra " + letra + " nao esta em posicao alguma");
                //calcula as vezes em que houveram erros
                //se a letra ja foi dita, nao conta como erro.
                //ou seja se nao foi dita, conta erro.
                if (letraJaDita == false) {
                    erros = erros + 1;
                    realTotalErros = realTotalErros - 1;
                }
                           
                if (erros >1 ) {
                    jLerros.setText("Voce ja errou " + erros + " vezes, pode errar mais " + realTotalErros);
                } else { //so para o plural de erros ,  e vez..
                    jLerros.setText("Voce ja errou " + erros + " vez, pode errar mais " + realTotalErros);
                }
            }//FECHA O IF de ERROS            
           
           imagesNoErro();           
            
            //coloca letras certas no textfield
            if (pec2 == 1) {
                jTl1.setText(letra);
            }
            if (pec2 == 2) {
                jTl2.setText(letra);
            }
            if (pec2 == 3) {
                jTl3.setText(letra);
            }
            if (pec2 == 4) {
                jTl4.setText(letra);
            }
            if (pec2 == 5) {
                jTl5.setText(letra);
            }
            // e no caso de duas ocorrencias da mesma letra...
            if (pec4 == 1) {
                jTl1.setText(letra);
            }
            if (pec4 == 2) {
                jTl2.setText(letra);
            }
            if (pec4 == 3) {
                jTl3.setText(letra);
            }
            if (pec4 == 4) {
                jTl4.setText(letra);
            }
            if (pec4 == 5) {
                jTl5.setText(letra);
            }
            pec3 = 0;
            pec4 = 0;//para so mostrar se realmente houver o pac4, ou duas letras, ou seja o lastindexof...
                
            //determina a derrota
            if (realTotalErros == 0) {
                jLabel3.setText("A palavra era : " + palavraEscolhida);
                JOptionPane.showMessageDialog(null, "VOCE PERDEU 20 VEZES! ", "PERDEU !!!", JOptionPane.INFORMATION_MESSAGE);
                
                erros = 0;
                realTotalErros = 20;
                letra = "";
               
                //conta derrotas
                derrotas=derrotas+1;
                jLderrotas.setText("Derrotas: "+derrotas);
                
                //rotina para começar sozinho
                
                Object[] options2 = {"Sim", "Não"};
                int confirmar2 = JOptionPane.showOptionDialog(null, "Deseja jogar novamente?", "Novo jogo", JOptionPane.DEFAULT_OPTION, JOptionPane.YES_OPTION, null, options2, options2[1]);
                if (confirmar2 == 0) {
                    //textfield das letras certas
                    jTl5.setEnabled(true);
                    jTl4.setEnabled(true);
                    jTl1.setText("");
                    jTl2.setText("");
                    jTl3.setText("");
                    jTl4.setText("");
                    jTl5.setText("");
                    jLlugarLetra.setText("");
                    
                    //zera a lista de letras ditas...
                    model = new DefaultListModel();
                    list = new JList(model);
                    c = -1;
                    jLletrasDitas.setText("" + model);
                    jLerros.setText("Voce ainda nao errou e pode errar 20 vezes.");
                    erros = 0;
                    realTotalErros = 20;
                    //escolhe palavra automaticamente...
                   
                    //aqui tirei as palavras que serao inseridas conforme categoria escolhida...
                    palavrasAleatorias();
                    
                    x = Math.random() * 25;
                    b = (int) x;
                    String b11 = String.valueOf(b);
                    palavraEscolhida = palavras[b];
                    tamanho = palavras[b].length();
                    //jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");
                    
                    //para teste
                    // System.out.println("palavraEscolhida" + palavraEscolhida);
                    
                    
                    int laco2 = 0;
                    while (laco2 == 0) {
                        if (model2.contains(palavraEscolhida)) {                            
                            //paratestar
                            //System.out.println("esta palavra ja foi usada");
                            //System.out.println("palavraEscolhida" + palavraEscolhida);
                                                      
                            //escolhe novamente...
                            x = Math.random() * 25;
                            b = (int) x;
                            b11 = String.valueOf(b);
                            palavraEscolhida = palavras[b];
                            tamanho = palavras[b].length();
                            //jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");
                            //acho que posso tirar isto
                            palavraJaDita = false;
                            
                        } else {
                            laco2 = laco2 + 1;
                            d = d + 1;
                            model2.add(d, palavraEscolhida);
                        }
                    }//fecha o while com palavra escolhida
                    
                    if (tamanho == 5) {
                        jTl4.setVisible(true);
                        jTl5.setVisible(true);
                    }
                    if (tamanho == 4) {
                        jTl5.setVisible(false);
                        jTl4.setVisible(true);
                    }
                    if (tamanho == 3) {
                        jTl4.setVisible(false);
                        jTl5.setVisible(false);
                        
                    }
                } else {  // System.exit(0); desnecessario o else... por enquanto
                }
                
            }// fechar o derrota...
            
            
            
            
            
            
            
            //acertar a palavra
            String l1 = jTl1.getText();
            String l2 = jTl2.getText();
            String l3 = jTl3.getText();
            String l4 = jTl4.getText();
            String l5 = jTl5.getText();
            String palavraCerta2 = l1 + l2 + l3 + l4 + l5;
            
            
            
            //aqui determina a vitoria
            if (palavraCerta2.equals(palavraEscolhida)) {
                jLabel3.setText("Voce acertou a palavra  : " + palavraEscolhida);
                JOptionPane.showMessageDialog(null, "A palavra esta certa: " + palavraEscolhida + "", "Vc ganhou !!!", JOptionPane.INFORMATION_MESSAGE);
                
                //vitorias e palavras ditas
                vitorias = vitorias + 1;
                jLvitorias.setText("Vitorias : " + vitorias);
                
                
                
                Object[] options2 = {"Sim", "Não"};
                int confirmar2 = JOptionPane.showOptionDialog(null, "Deseja jogar novamente?", "Novo jogo", JOptionPane.INFORMATION_MESSAGE, JOptionPane.YES_OPTION, null, options2, options2[1]);
                if (confirmar2 == 0) {
                    //textfield das letras certas
                    jTl5.setEnabled(true);
                    jTl4.setEnabled(true);
                    jTl1.setText("");
                    jTl2.setText("");
                    jTl3.setText("");
                    jTl4.setText("");
                    jTl5.setText("");
                    tamanho = 0;
                    //jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");
                    jLlugarLetra.setText("");
                    //agora a palavra fica aparecendo.
                    //ou posso por em branco no caso de vitoria, pode ficar melhor...
                    // jLabel3.setText(" ");
                    
                    
                    
                    
                    
                    //zera a lista de letras ditas...
                    model = new DefaultListModel();
                    list = new JList(model);
                    c = -1;
                    jLletrasDitas.setText("" + model);
                    jLerros.setText("Voce ainda nao errou e pode errar 20 vezes.");
                    //escolhe palavra automaticamente...
                    erros = 0;
                    realTotalErros = 20;
                    
                    
                    String palavras[] = new String[26];
                    palavras[0] = "casa";
                    palavras[1] = "agua";
                    palavras[2] = "carro";
                    palavras[3] = "chuva";
                    palavras[4] = "roupa";
                    palavras[5] = "moda";
                    palavras[6] = "rua";
                    palavras[7] = "lua";
                    palavras[8] = "fruto";
                    palavras[9] = "bola";
                    //palavras[10]="medida";
                    palavras[10] = "curva";
                    palavras[11] = "asa";
                    palavras[12] = "crime";
                    palavras[13] = "gol";
                    palavras[14] = "arma";
                    palavras[15] = "nadar";
                    palavras[16] = "jogar";
                    palavras[17] = "ativo";
                    palavras[18] = "vida";
                    palavras[19] = "ato";
                    palavras[20] = "seta";
                    palavras[21] = "meta";
                    palavras[22] = "reta";
                    palavras[23] = "cueca";
                    palavras[24] = "mesa";
                    palavras[25] = "quadro";
                    
                    x = Math.random() * 25;
                    b = (int) x;
                    String b11 = String.valueOf(b);
                    palavraEscolhida = palavras[b];
                    tamanho = palavras[b].length();
                    //jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");
                    //so para testes de programação
                    // System.out.println("palavraEscolhida" + palavraEscolhida);
                    
                    //fazer exceção caso nao ajam mais palavras...
                    int laco2 = 0;
                    while (laco2 == 0) {
                        if (model2.contains(palavraEscolhida)) {
                            
                            //paratestar
                            // System.out.println("esta palavra ja foi usada");
                            // System.out.println("palavraEscolhida" + palavraEscolhida);
                            
                            
                            //escolhe novamente...
                            x = Math.random() * 25;
                            b = (int) x;
                            b11 = String.valueOf(b);
                            palavraEscolhida = palavras[b];
                            tamanho = palavras[b].length();
                            //jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");
                            //acho que posso tirar isto
                            palavraJaDita = false;
                        } else {
                            laco2 = laco2 + 1;
                            
                            d = d + 1;
                            model2.add(d, palavraEscolhida);
                        }
                    }//fecha o while com palavra escolhida
                    
                    if (tamanho == 5) {
                        jTl4.setVisible(true);
                        jTl5.setVisible(true);
                    }
                    if (tamanho == 4) {
                        jTl5.setVisible(false);
                        jTl4.setVisible(true);
                    }
                    if (tamanho == 3) {
                        jTl4.setVisible(false);
                        jTl5.setVisible(false);
                        
                    }
                } else {  // System.exit(0);
                }
            }//fecha o determina a vitoria
            
            
            
            //se tiver 21 acaba...
            //ao aumentar palavras, aumentar aqui tb...
            if (model2.size() == 25) {
                JOptionPane.showMessageDialog(null, "Vc usou todas as palavras do jogo.", "Fim de Jogo", JOptionPane.INFORMATION_MESSAGE);
                System.exit(0);
            }
            espaco=false;
          
            
       carregarSom(0);     
       tocaSom();
        }//fecha o boolean inicia
        else {
            JOptionPane.showMessageDialog(null, "Use primeiro o botao inicia", "Botao Inicia", JOptionPane.INFORMATION_MESSAGE);
        }
    }                                                 

    private void jTletraKeyPressed(java.awt.event.KeyEvent evt) {                                   
//jBconfirmaPalavraActionPerformed();
    }                                  

    private void jTletraFocusGained(java.awt.event.FocusEvent evt) {                                    
        // TODO add your handling code here:
    }                                   

    public static void main(String args[]) {

                       new Forca().setVisible(true);
                                   }
     
    
    

    
    
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton jBconfirmaPalavra;
    private javax.swing.JButton jBescolhePalavra;
    private javax.swing.JLabel jLErrou;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLderrotas;
    private javax.swing.JLabel jLerros;
    private javax.swing.JLabel jLletrasDitas;
    private javax.swing.JLabel jLlugarLetra;
    private javax.swing.JLabel jLpalavraCerta;
    private javax.swing.JLabel jLpalavraCerta2;
    private javax.swing.JLabel jLvitorias;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuBar jMenuBar2;
    private javax.swing.JMenuBar jMenuBar3;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JTextField jTl1;
    private javax.swing.JTextField jTl2;
    private javax.swing.JTextField jTl3;
    private javax.swing.JTextField jTl4;
    private javax.swing.JTextField jTl5;
    private javax.swing.JTextField jTletra;
    // End of variables declaration                   
}

tenho as imagens, e posso mandar o arquivo ajuda tambem.
mas como eu disse, ta super bagunçadinho (nem tanto) . é para tentar estudar os métodos.

bem sabia que tinha algo mais organizado aqui, segue o arquivo. e o ajuda tambem. e as imagens estao no atachement.
tem que ser postas na pasta c:/[code]

/*

  • Forca.java
  • Created on 6 de Agosto de 2009, 09:07
    */
    package jogo_da_forca;

import java.awt.event.KeyEvent;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JOptionPane;

import javax.swing.*;

/**
*

  • @author raghyjose
    */
    public class Forca_1 extends javax.swing.JFrame {

    public double x = 0;
    //palavras
    String palavras[] = new String[0];
    //para saber se na primeira vez, usou o botão…
    boolean inicia = false;
    //linha 540 esta palavra ja foi dita… quando houver…
    // String valores[] = new String[10];
    int c = -1;
    //letras
    DefaultListModel model = new DefaultListModel();
    JList list = new JList(model);
    //palavras ja usadas
    DefaultListModel model2 = new DefaultListModel();
    JList list2 = new JList(model2);
    int letraDita = 0;
    //hh é variavel do array palavras 2
    int h = 0;
    int erros = 0;
    //int totalErros=20;
    int realTotalErros = 20;
    int tamanho = 0;
    String palavraEscolhida = “”;
    //vitorias
    int vitorias = 0;
    //derrotas
    int derrotas = 0;
    //t e para aumentar o numero do array de palavras ditas
    int t = 0;
    int pos = 0;
    int z = 0;
    int i = 0;
    boolean letraJaDita = false;
    int pec3 = 0;
    int pec4 = 0;
    int pec2 = 0;
    int pec = 0;
    int lastX = 0;
    int b = 1;
    boolean palavraJaDita = false;
    boolean espaco = false;
    boolean animais = false;
    boolean aleatorias = true;
    boolean musica = false;
    boolean objetos = false;
    int d = -1;
    ImageIcon f0 = new ImageIcon(“C:/IMAGENS/forcadesenho0.gif”);
    ImageIcon f1 = new ImageIcon(“C:/IMAGENS/forcadesenho1.gif”);
    ImageIcon f2 = new ImageIcon(“C:/IMAGENS/forcadesenho2.gif”);
    ImageIcon f3 = new ImageIcon(“C:/IMAGENS/forcadesenho3.gif”);
    ImageIcon f4 = new ImageIcon(“C:/IMAGENS/forcadesenho4.gif”);
    ImageIcon f5 = new ImageIcon(“C:/IMAGENS/forcadesenho5.gif”);
    ImageIcon f6 = new ImageIcon(“C:/IMAGENS/forcadesenho6.gif”);
    ImageIcon f7 = new ImageIcon(“C:/IMAGENS/forcadesenho7.gif”);
    ImageIcon f8 = new ImageIcon(“C:/IMAGENS/forcadesenho8.gif”);
    ImageIcon f9 = new ImageIcon(“C:/IMAGENS/forcadesenho9.gif”);
    ImageIcon f10 = new ImageIcon(“C:/IMAGENS/forcadesenho10.gif”);
    ImageIcon f11 = new ImageIcon(“C:/IMAGENS/forcadesenho11.gif”);
    ImageIcon f12 = new ImageIcon(“C:/IMAGENS/forcadesenho12.gif”);
    ImageIcon f13 = new ImageIcon(“C:/IMAGENS/forcadesenho13.gif”);
    ImageIcon f14 = new ImageIcon(“C:/IMAGENS/forcadesenho14.gif”);
    ImageIcon f15 = new ImageIcon(“C:/IMAGENS/forcadesenho15.gif”);
    ImageIcon f16 = new ImageIcon(“C:/IMAGENS/forcadesenho16.gif”);
    ImageIcon f17 = new ImageIcon(“C:/IMAGENS/forcadesenho17a.gif”);
    ImageIcon f18 = new ImageIcon(“C:/IMAGENS/forcadesenho18a.gif”);
    ImageIcon f19 = new ImageIcon(“C:/IMAGENS/forcadesenho19a.gif”);
    ImageIcon f20 = new ImageIcon(“C:/IMAGENS/forcadesenho20a.gif”);

    public Forca_1() {
    initComponents();
    setLocationRelativeTo(null);
    inicia();
    }
    String letra = “”;
    String palavraCerta2 = “”;

    public void derrotaVitorias() {
    //determina a derrota
    if (realTotalErros == 0) {
    jLabel3.setText("A palavra era : " + palavraEscolhida);
    JOptionPane.showMessageDialog(null, "VOCE PERDEU 20 VEZES! ", “PERDEU !!!”, JOptionPane.INFORMATION_MESSAGE);

         erros = 0;
         realTotalErros = 20;
         letra = "";
         //conta derrotas
         derrotas = derrotas + 1;
         jLderrotas.setText("Derrotas: " + derrotas);
         //rotina para começar sozinho
         recomeco();
     }// fechar o derrota...
     acertaPalavra();
    

//aqui determina a vitoria
if (palavraCerta2.equals(palavraEscolhida)) {
jLabel3.setText("Voce acertou a palavra : " + palavraEscolhida);
JOptionPane.showMessageDialog(null, "A palavra esta certa: " + palavraEscolhida + “”, “Vc ganhou !!!”, JOptionPane.INFORMATION_MESSAGE);

        //vitorias e palavras ditas
        vitorias = vitorias + 1;
        jLvitorias.setText("Vitorias : " + vitorias);
        recomeco();
    }

}
public void inicia() {
    inicia = true;
    
    
    if (realTotalErros == 0) {
        jLErrou.setIcon(f20);
    }
    
    
    verificaCategoria();
    int laco3 = 0;
    while (laco3 == 0) {

        x = Math.random() * palavras.length;
        b = (int) x;
        palavraEscolhida = palavras[b];
        tamanho = palavras[b].length();
        jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");



        if (model2.contains(palavraEscolhida)) {
            palavraJaDita = true;
        } else {
            d = d + 1;
            model2.add(d, palavraEscolhida);
            laco3 = 1;
        }
    }

    tamanhos();




}
public void principal(){
    //continua tudo...
    if (inicia == true) {
        //colocar exceção para textfield nulo        
        jTletra.requestFocus();
        //captura a letra digitada
        String letraQualquer = jTletra.getText();
        //poe letras para minusculo
        letra = letraQualquer.toLowerCase();
        //capturada nao precisa mais, vinha do getText()
        String palavraEscolhidaCapturada = palavraEscolhida;
        pec = palavraEscolhidaCapturada.indexOf(letra);
        //acerta o valor porque array começa com zero
        pec2 = pec + 1;
        //no caso de duas ocorrencias, captura o ultimo index...
        pec3 = palavraEscolhidaCapturada.lastIndexOf(letra);
        pec4 = pec3 + 1;

     
        if (letra.equals("")  &&  !model.isEmpty()  ) {
            JOptionPane.showMessageDialog(null, "Espaco em branco!!", "Digite uma Letra", JOptionPane.INFORMATION_MESSAGE);
            espaco = true;
            pec2 = 0;
            pec4 = 0;
            //aqui vale para nao contar erro
            letraJaDita = true;
        }
        //de novo  quando começa, pega o espaço, entao tem que prevenir, para nao entrar na lista,
        // e nao ...
         if (letra.equals("") && model.isEmpty()) {
            espaco = true;
             JOptionPane.showMessageDialog(null, "Digite uma letra", "Digite uma Letra", JOptionPane.INFORMATION_MESSAGE);
             jLlugarLetra.setText("");
           //aqui vale para nao contar erro
            letraJaDita = true;
        }
         if(letra.equals("")) {letra="_"; pec2=0; pec4=0; }

        //teste para duas letras, nao valer. ok funcionou... nao vale duas letras.
        if (letra.length() > 1) {
            JOptionPane.showMessageDialog(null, "Somente uma letra.", "Digite uma Letra", JOptionPane.INFORMATION_MESSAGE);
            espaco = true;
            pec2 = 0;
            pec4 = 0;
             //aqui vale para nao contar erro
            letraJaDita = true;
        }



        if (pec2 == pec4) {
            jLlugarLetra.setText("A letra  " + letra + " esta na posicao" + pec2);
        } else {
            jLlugarLetra.setText("A letra  " + letra + " esta na posicao " + pec2 + " e " + pec4);
        }

        if (model.contains(letra) && (!letra.equals(""))) {
            //   && (!letra.equals(""))) {   -se tiver dois espaços nao mostra letra ja dita.
            JOptionPane.showMessageDialog(null, "Esta letra ja foi dita!", "Letra ja dita", JOptionPane.INFORMATION_MESSAGE);
            jTletra.setText("");
            letraJaDita = true;

        } else if (!espaco==true) {
            c = c + 1;
            model.add(c, letra);
            jLletrasDitas.setText("" + model + "");
            jTletra.setText("");
            letraJaDita = false;
        }


        //achar uma excecao caso a letra nao exista ou   _____ -ERROS  ____ ---
        if (pec2 <= 0) {
            jLlugarLetra.setText("A letra " + letra + " nao esta em posicao alguma");
            //calcula as vezes em que houveram erros
            //se a letra ja foi dita, nao conta como erro.
            //ou seja se nao foi dita, conta erro.
            if (letraJaDita == false) {
                erros = erros + 1;
                realTotalErros = realTotalErros - 1;
            }


            if (erros > 1) {
                jLerros.setText("Voce ja errou " + erros + " vezes, pode errar mais " + realTotalErros);
            } else { //so para o plural de erros ,  e vez..
                jLerros.setText("Voce ja errou " + erros + " vez, pode errar mais " + realTotalErros);
            }
        }//FECHA O IF de ERROS

        imagensErros();
        letrasLugar();
        derrotaVitorias();

        if (model2.size() == palavras.length) {
            JOptionPane.showMessageDialog(null, "Vc usou todas as palavras do jogo.", "Fim de Jogo", JOptionPane.INFORMATION_MESSAGE);
            System.exit(0);
        }
        espaco = false;

    }
}
public void aleatorias() {
    palavras = new String[26];
    palavras[0] = "casa";
    palavras[1] = "agua";
    palavras[2] = "carro";
    palavras[3] = "chuva";
    palavras[4] = "roupa";
    palavras[5] = "moda";
    palavras[6] = "rua";
    palavras[7] = "lua";
    palavras[8] = "fruto";
    palavras[9] = "bola";
    //palavras[10]="medida";  
    palavras[10] = "curva";
    palavras[11] = "asa";
    palavras[12] = "crime";
    palavras[13] = "gol";
    palavras[14] = "arma";
    palavras[15] = "nadar";
    palavras[16] = "jogar";
    palavras[17] = "ativo";
    palavras[18] = "vida";
    palavras[19] = "ato";
    palavras[20] = "seta";
    palavras[21] = "meta";
    palavras[22] = "reta";
    palavras[23] = "cueca";
    palavras[24] = "mesa";
    palavras[25] = "quadro";

}
public void animais() {
    palavras = new String[5];
    palavras[0] = "cavalo";
    palavras[1] = "coelho";
    palavras[2] = "zebra";
    palavras[3] = "coruja";
    palavras[4] = "cobra";
//nao fiz para 3 letras iguais na palavra...
}
public void objetos() {
    palavras = new String[5];
    palavras[0] = "vaso";
    palavras[1] = "jarro";
    palavras[2] = "cadeira";
    palavras[3] = "armario";
    palavras[4] = "relogio";
}
public void musica() {
    palavras = new String[5];
    palavras[0] = "guitarra";
    palavras[1] = "violao";
    palavras[2] = "bateria";
    palavras[3] = "flauta";
    palavras[4] = "piano";
}
public void tamanhos() {
    if (tamanho == 8) {
        jTl4.setVisible(true);
        jTl5.setVisible(true);
        jTl6.setVisible(true);
        jTl7.setVisible(true);
        jTl8.setVisible(true);

    }



    if (tamanho == 7) {
        jTl4.setVisible(true);
        jTl5.setVisible(true);
        jTl6.setVisible(true);
        jTl7.setVisible(true);
        jTl8.setVisible(false);
    }



    if (tamanho == 6) {
        jTl4.setVisible(true);
        jTl5.setVisible(true);
        jTl6.setVisible(true);
        jTl7.setVisible(false);
        jTl8.setVisible(false);
    }

    if (tamanho == 5) {
        jTl4.setVisible(true);
        jTl5.setVisible(true);
        jTl6.setVisible(false);
        jTl7.setVisible(false);
        jTl8.setVisible(false);
    }
    if (tamanho == 4) {
        jTl6.setVisible(false);
        jTl7.setVisible(false);
        jTl5.setVisible(false);
        jTl4.setVisible(true);
        jTl8.setVisible(false);
    }
    if (tamanho == 3) {
        jTl4.setVisible(false);
        jTl5.setVisible(false);
        jTl6.setVisible(false);
        jTl7.setVisible(false);
        jTl8.setVisible(false);

    }
}
public void verificaCategoria() {
    if (animais == true) {
        //esvaziar o model para nao acabar o jogo se acabarem as palavras,
        //ou nao acumular palavras de outras categorias no model...
        //-1 no d, para acertar o array.
        model2 = new DefaultListModel();
        list2 = new JList(model2);
        d=-1;
        animais();
        aleatorias = false;
        objetos = false;
        musica = false;
         
       
    }
    if (aleatorias == true) {
          model2 = new DefaultListModel();
        list2 = new JList(model2);
        d=-1;
        aleatorias();
        animais = false;
        objetos = false;
        musica = false;
    }
    if (objetos == true) {
          model2 = new DefaultListModel();
        list2 = new JList(model2);
        d=-1;
        objetos();
        animais = false;
        aleatorias = false;
        musica = false;
    }
    if (musica == true) {
          model2 = new DefaultListModel();
        list2 = new JList(model2);
        d=-1;
        musica();
        animais = false;
        aleatorias = false;
        objetos = false;
    }


}
public void imagensErros() {
    if (realTotalErros == 20) {
        jLErrou.setIcon(f0);
    }
    if (realTotalErros == 19) {
        jLErrou.setIcon(f1);
    }
    if (realTotalErros == 18) {
        jLErrou.setIcon(f2);
    }
    if (realTotalErros == 17) {
        jLErrou.setIcon(f3);
    }
    if (realTotalErros == 16) {
        jLErrou.setIcon(f4);
    }
    if (realTotalErros == 15) {
        jLErrou.setIcon(f5);
    }
    if (realTotalErros == 14) {
        jLErrou.setIcon(f6);
    }
    if (realTotalErros == 13) {
        jLErrou.setIcon(f7);
    }
    if (realTotalErros == 12) {
        jLErrou.setIcon(f8);
    }
    if (realTotalErros == 11) {
        jLErrou.setIcon(f9);
    }
    if (realTotalErros == 10) {
        jLErrou.setIcon(f10);
    }
    if (realTotalErros == 9) {
        jLErrou.setIcon(f11);
    }
    if (realTotalErros == 8) {
        jLErrou.setIcon(f12);
    }
    if (realTotalErros == 7) {
        jLErrou.setIcon(f13);
    }
    if (realTotalErros == 6) {
        jLErrou.setIcon(f14);
    }
    if (realTotalErros == 5) {
        jLErrou.setIcon(f15);
    }
    if (realTotalErros == 4) {
        jLErrou.setIcon(f16);
    }
    if (realTotalErros == 3) {
        jLErrou.setIcon(f17);
    }
    if (realTotalErros == 2) {
        jLErrou.setIcon(f18);
    }
    if (realTotalErros == 1) {
        jLErrou.setIcon(f19);
    }
     if (realTotalErros == 0) {
        jLErrou.setIcon(f20);
    }
   

}
public void letrasLugar() {
    //coloca letras certas no textfield
    if (pec2 == 1) {
        jTl1.setText(letra);
    }
    if (pec2 == 2) {
        jTl2.setText(letra);
    }
    if (pec2 == 3) {
        jTl3.setText(letra);
    }
    if (pec2 == 4) {
        jTl4.setText(letra);
    }
    if (pec2 == 5) {
        jTl5.setText(letra);
    }
    if (pec2 == 6) {
        jTl6.setText(letra);
    }
    if (pec2 == 7) {
        jTl7.setText(letra);
    }if (pec2 == 8) {
        jTl8.setText(letra);
    }
    

    // e no caso de duas ocorrencias da mesma letra...
    if (pec4 == 1) {
        jTl1.setText(letra);
    }
    if (pec4 == 2) {
        jTl2.setText(letra);
    }
    if (pec4 == 3) {
        jTl3.setText(letra);
    }
    if (pec4 == 4) {
        jTl4.setText(letra);
    }
    if (pec4 == 5) {
        jTl5.setText(letra);
    }
    if (pec4 == 6) {
        jTl6.setText(letra);
    }
    if (pec4 == 7) {
        jTl7.setText(letra);
    }
    if (pec4 ==8) {
        jTl8.setText(letra);
    }
    pec3 = 0;
    pec4 = 0;//para so mostrar se realmente houver o pac4, ou duas letras, ou seja o lastindexof...    



}
public void recomeco() {
    Object[] options2 = {"Sim", "Não"};
    int confirmar2 = JOptionPane.showOptionDialog(null, "Deseja jogar novamente?", "Novo jogo", JOptionPane.DEFAULT_OPTION, JOptionPane.YES_OPTION, null, options2, options2[1]);
    if (confirmar2 == 0) {
        jTl1.setText("");
        jTl2.setText("");
        jTl3.setText("");
        jTl4.setText("");
        jTl5.setText("");
        jTl6.setText("");
        jTl7.setText("");
        jTl8.setText("");
        jLlugarLetra.setText("");
        //zera a lista de letras ditas...
        model = new DefaultListModel();
        list = new JList(model);
        
        
        model2 = new DefaultListModel();
        list2 = new JList(model2);
        c = -1;
        jLletrasDitas.setText("" + model);
        jLerros.setText("Voce ainda nao errou e pode errar 20 vezes.");
        erros = 0;
        realTotalErros = 20;
        
     escolhePalavra();}
}
public void zeraModel() {
      jTl1.setText("");
        jTl2.setText("");
        jTl3.setText("");
        jTl4.setText("");
        jTl5.setText("");
        jTl6.setText("");
        jTl7.setText("");
        jTl8.setText("");
        jLlugarLetra.setText("");
        //zera a lista de letras ditas...
        model = new DefaultListModel();
        list = new JList(model);
        
        
        
        
        
        
        c = -1;
        jLletrasDitas.setText("" + model);
        jLerros.setText("Voce ainda nao errou e pode errar 20 vezes.");
        erros = 0;
        realTotalErros = 20;
        
        
        
        
        
}
public void escolhePalavra(){
    //escolhe palavra automaticamente...
        verificaCategoria();
        x = Math.random() * palavras.length;
        b = (int) x;

// String b11 = String.valueOf(b);
palavraEscolhida = palavras[b];
tamanho = palavras[b].length();
jLTamanho.setText(“a palavra escolhida tem " + tamanho + " letras”);
int laco2 = 0;
while (laco2 == 0) {
if (model2.contains(palavraEscolhida)) {

                x = Math.random() * palavras.length;
                b = (int) x;
                //                      b11 = String.valueOf(b);
                palavraEscolhida = palavras[b];
                tamanho = palavras[b].length();
                jLTamanho.setText("a palavra escolhida tem " + tamanho + " letras");
                //acho que posso tirar isto
                palavraJaDita = false;

            } else {
                laco2 = laco2 + 1;
                d = d + 1;
                model2.add(d, palavraEscolhida);
            }
           tamanhos();   
        }//fecha o while com palavra escolhida


}
public void acertaPalavra() {
    //acertar a palavra
    String l1 = jTl1.getText();
    String l2 = jTl2.getText();
    String l3 = jTl3.getText();
    String l4 = jTl4.getText();
    String l5 = jTl5.getText();
    String l6 = jTl6.getText();
    String l7 = jTl7.getText();
    String l8 = jTl8.getText();
    palavraCerta2 = l1 + l2 + l3 + l4 + l5 + l6 + l7 + l8;


}
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jTletra = new javax.swing.JTextField();
    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    jLletrasDitas = new javax.swing.JLabel();
    jBconfirmaPalavra = new javax.swing.JButton();
    jLerros = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    jPanel2 = new javax.swing.JPanel();
    jLTamanho = new javax.swing.JLabel();
    jBescolhePalavra = new javax.swing.JButton();
    jLlugarLetra = new javax.swing.JLabel();
    jTl1 = new javax.swing.JTextField();
    jTl2 = new javax.swing.JTextField();
    jTl3 = new javax.swing.JTextField();
    jTl4 = new javax.swing.JTextField();
    jTl5 = new javax.swing.JTextField();
    jLpalavraCerta = new javax.swing.JLabel();
    jLpalavraCerta2 = new javax.swing.JLabel();
    jPanel4 = new javax.swing.JPanel();
    jLvitorias = new javax.swing.JLabel();
    jLderrotas = new javax.swing.JLabel();
    jComboBox1 = new javax.swing.JComboBox();
    jButton2 = new javax.swing.JButton();
    jTl6 = new javax.swing.JTextField();
    jTl7 = new javax.swing.JTextField();
    jTl8 = new javax.swing.JTextField();
    jPanel3 = new javax.swing.JPanel();
    jLErrou = new javax.swing.JLabel();
    jMenuBar1 = new javax.swing.JMenuBar();
    jMenu1 = new javax.swing.JMenu();
    jMenuItem1 = new javax.swing.JMenuItem();
    jMenuItem2 = new javax.swing.JMenuItem();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Jogo Da Forca");

    jPanel1.setBackground(new java.awt.Color(153, 153, 255));
    jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

    jTletra.setBackground(new java.awt.Color(204, 0, 204));
    jTletra.setFont(new java.awt.Font("Tahoma", 0, 26));
    jTletra.setDisabledTextColor(new java.awt.Color(153, 153, 0));
    jTletra.setFocusCycleRoot(true);
    jTletra.setFocusTraversalPolicyProvider(true);
    jTletra.setSelectionColor(new java.awt.Color(153, 0, 255));
    jTletra.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jTletraFocusGained(evt);
        }
    });
    jTletra.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            jTletraKeyPressed(evt);
        }
    });

    jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14));
    jLabel1.setText("Digite uma letra:");

    jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14));
    jLabel2.setText("Voce disse as seguintes letras ate agora:");

    jLletrasDitas.setFont(new java.awt.Font("Tahoma", 0, 18));
    jLletrasDitas.setForeground(new java.awt.Color(255, 0, 0));
    jLletrasDitas.setText("_____nenhuma letra dita por enquanto_____");

    jBconfirmaPalavra.setFont(new java.awt.Font("Tahoma", 0, 14));
    jBconfirmaPalavra.setMnemonic(KeyEvent.VK_Z);
    jBconfirmaPalavra.setText("confirma");
    jBconfirmaPalavra.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jBconfirmaPalavraActionPerformed(evt);
        }
    });
    jBconfirmaPalavra.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            jBconfirmaPalavraKeyPressed(evt);
        }
    });

    jLerros.setFont(new java.awt.Font("Tahoma", 0, 14));
    jLerros.setText("Voce ainda nao errou e pode errar  20 vezes.");

    jLabel3.setText("A palavra era: ");

    org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel1Layout.createSequentialGroup()
            .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel1Layout.createSequentialGroup()
                    .add(29, 29, 29)
                    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(jLerros)
                        .add(jPanel1Layout.createSequentialGroup()
                            .add(jLabel1)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                            .add(jTletra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 46, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(18, 18, 18)
                            .add(jBconfirmaPalavra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 106, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(50, 50, 50)
                    .add(jLletrasDitas))
                .add(jPanel1Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 272, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(127, 127, 127)
                    .add(jLabel2)))
            .addContainerGap(129, Short.MAX_VALUE))
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel1Layout.createSequentialGroup()
            .addContainerGap()
            .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                .add(jLabel3)
                .add(jLabel2))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel1Layout.createSequentialGroup()
                    .add(7, 7, 7)
                    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(jLabel1)
                        .add(jTletra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 37, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(jPanel1Layout.createSequentialGroup()
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(jBconfirmaPalavra, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 42, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jLletrasDitas))))
            .add(30, 30, 30)
            .add(jLerros)
            .addContainerGap(45, Short.MAX_VALUE))
    );

    jPanel2.setBackground(new java.awt.Color(153, 153, 255));
    jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
    jPanel2.setEnabled(false);

    jLTamanho.setFont(new java.awt.Font("Tahoma", 0, 14));
    jLTamanho.setText("Mostra quantidade de letras da palavra");

    jBescolhePalavra.setFont(new java.awt.Font("Tahoma", 0, 14));
    jBescolhePalavra.setText("FORCA");
    jBescolhePalavra.setEnabled(false);
    jBescolhePalavra.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jBescolhePalavraActionPerformed(evt);
        }
    });

    jLlugarLetra.setFont(new java.awt.Font("Tahoma", 0, 14));
    jLlugarLetra.setText("Esta letra esta em _-_  lugar na palavra");

    jTl1.setBackground(new java.awt.Color(204, 0, 204));
    jTl1.setEditable(false);
    jTl1.setFont(new java.awt.Font("Tahoma", 0, 26));

    jTl2.setBackground(new java.awt.Color(204, 0, 204));
    jTl2.setEditable(false);
    jTl2.setFont(new java.awt.Font("Tahoma", 0, 26));

    jTl3.setBackground(new java.awt.Color(204, 0, 204));
    jTl3.setEditable(false);
    jTl3.setFont(new java.awt.Font("Tahoma", 0, 26));

    jTl4.setBackground(new java.awt.Color(204, 0, 204));
    jTl4.setEditable(false);
    jTl4.setFont(new java.awt.Font("Tahoma", 0, 26));

    jTl5.setBackground(new java.awt.Color(204, 0, 204));
    jTl5.setEditable(false);
    jTl5.setFont(new java.awt.Font("Tahoma", 0, 26));

    jLpalavraCerta2.setFont(new java.awt.Font("Tahoma", 0, 14));
    jLpalavraCerta2.setText("Sera que vc acerta a palavra?");

    jLvitorias.setFont(new java.awt.Font("Tahoma", 1, 13));
    jLvitorias.setText("Vitorias: 0   ");

    jLderrotas.setFont(new java.awt.Font("Tahoma", 1, 13));
    jLderrotas.setText("Derrotas: 0");

    org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
    jPanel4.setLayout(jPanel4Layout);
    jPanel4Layout.setHorizontalGroup(
        jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel4Layout.createSequentialGroup()
            .addContainerGap()
            .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                .add(jLvitorias)
                .add(org.jdesktop.layout.GroupLayout.LEADING, jLderrotas))
            .addContainerGap(15, Short.MAX_VALUE))
    );
    jPanel4Layout.setVerticalGroup(
        jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel4Layout.createSequentialGroup()
            .addContainerGap()
            .add(jLvitorias, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(jLderrotas)
            .add(51, 51, 51))
    );

    jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "animais", "objetos", "musica", "aleatorias" }));
    jComboBox1.setSelectedIndex(3);
    jComboBox1.setSelectedItem(aleatorias);

    jButton2.setText("Seleciona Categoria");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton2ActionPerformed(evt);
        }
    });

    jTl6.setBackground(new java.awt.Color(204, 0, 204));
    jTl6.setEditable(false);
    jTl6.setFont(new java.awt.Font("Tahoma", 0, 26));

    jTl7.setBackground(new java.awt.Color(204, 0, 204));
    jTl7.setEditable(false);
    jTl7.setFont(new java.awt.Font("Tahoma", 0, 26));

    jTl8.setBackground(new java.awt.Color(204, 0, 204));
    jTl8.setEditable(false);
    jTl8.setFont(new java.awt.Font("Tahoma", 0, 26));

    org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
    jPanel2.setLayout(jPanel2Layout);
    jPanel2Layout.setHorizontalGroup(
        jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel2Layout.createSequentialGroup()
            .addContainerGap()
            .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel2Layout.createSequentialGroup()
                    .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jLpalavraCerta2)
                        .add(jPanel2Layout.createSequentialGroup()
                            .add(jTl1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 54, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jTl2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 27, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jTl3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jTl4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 27, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jTl5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jTl6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jTl7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(jTl8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 212, Short.MAX_VALUE)
                    .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(48, 48, 48)
                    .add(jLpalavraCerta))
                .add(jPanel2Layout.createSequentialGroup()
                    .add(jBescolhePalavra)
                    .add(18, 18, 18)
                    .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jPanel2Layout.createSequentialGroup()
                            .add(jLTamanho)
                            .add(126, 126, 126)
                            .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 98, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(18, 18, 18)
                            .add(jButton2))
                        .add(jLlugarLetra))
                    .add(125, 125, 125))))
    );

    jPanel2Layout.linkSize(new java.awt.Component[] {jTl1, jTl2, jTl3, jTl4, jTl5, jTl6, jTl7, jTl8}, org.jdesktop.layout.GroupLayout.HORIZONTAL);

    jPanel2Layout.setVerticalGroup(
        jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel2Layout.createSequentialGroup()
            .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel2Layout.createSequentialGroup()
                    .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                        .add(jPanel2Layout.createSequentialGroup()
                            .add(54, 54, 54)
                            .add(jLpalavraCerta))
                        .add(jPanel2Layout.createSequentialGroup()
                            .add(37, 37, 37)
                            .add(jLpalavraCerta2)
                            .add(84, 84, 84)
                            .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                .add(jBescolhePalavra)
                                .add(jLlugarLetra)))
                        .add(jPanel2Layout.createSequentialGroup()
                            .add(72, 72, 72)
                            .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE, false)
                                .add(jTl2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .add(jTl3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .add(jTl4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .add(jTl5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .add(jTl1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 39, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .add(jTl6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .add(jTl7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .add(jTl8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(jLTamanho)
                        .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(jButton2)))
                .add(jPanel2Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(jPanel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
            .addContainerGap(34, Short.MAX_VALUE))
    );

    jPanel2Layout.linkSize(new java.awt.Component[] {jTl1, jTl2, jTl3, jTl4, jTl5, jTl6, jTl7, jTl8}, org.jdesktop.layout.GroupLayout.VERTICAL);

    jLErrou.setText("-");

    org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
    jPanel3.setLayout(jPanel3Layout);
    jPanel3Layout.setHorizontalGroup(
        jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel3Layout.createSequentialGroup()
            .addContainerGap()
            .add(jLErrou)
            .addContainerGap(206, Short.MAX_VALUE))
    );
    jPanel3Layout.setVerticalGroup(
        jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(jPanel3Layout.createSequentialGroup()
            .add(jLErrou)
            .addContainerGap(376, Short.MAX_VALUE))
    );

    jMenu1.setText("Ajuda");
    jMenu1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenu1ActionPerformed(evt);
        }
    });

    jMenuItem1.setText("Instrucoes basicas");
    jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem1ActionPerformed(evt);
        }
    });
    jMenu1.add(jMenuItem1);

    jMenuItem2.setText("Sair do Jogo");
    jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem2ActionPerformed(evt);
        }
    });
    jMenu1.add(jMenuItem2);

    jMenuBar1.add(jMenu1);

    setJMenuBar(jMenuBar1);

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(layout.createSequentialGroup()
            .addContainerGap()
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
            .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
        .add(layout.createSequentialGroup()
            .addContainerGap()
            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(layout.createSequentialGroup()
                    .add(7, 7, 7)
                    .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
            .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>
private void jBconfirmaPalavraActionPerformed(java.awt.event.ActionEvent evt) {                                                  

    if (inicia == true) {
   principal();
    }
  
}                                                 

private void jBconfirmaPalavraKeyPressed(java.awt.event.KeyEvent evt) {                                             
//jBconfirmaPalavra=KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK,false);
}                                            

private void jTletraKeyPressed(java.awt.event.KeyEvent evt) {                                   
    // TODO add your handling code here:


    if (evt.getKeyCode() == 10) {
        JOptionPane.showMessageDialog(null, "ENTER!", "Letra ja dita", JOptionPane.INFORMATION_MESSAGE);
    
    }
}

public void keyReleased(KeyEvent e) {
}

public void keyTyped(KeyEvent e) {


}                                  

private void jTletraFocusGained(java.awt.event.FocusEvent evt) {                                    
// TODO add your handling code here:
}                                   

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    Ajuda adCli = new Ajuda();
    adCli.setVisible(true);
    adCli.setLocationRelativeTo(null);

}                                          

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    System.exit(0);
       
}                                          

private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
// TODO add your handling code here:
}                                      

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         



    int item = jComboBox1.getSelectedIndex();
    System.out.println("combo:" + item);

    if (item == 0) {
        System.out.println("item1=animais");
        animais = true;
        
         aleatorias = false;
        objetos = false;
        musica = false;
        
    }
    if (item == 1) {
        objetos = true;
         aleatorias = false;
       
        musica = false;
         animais = false;
    }
    if (item == 2) {
        musica = true;
         aleatorias = false;
        objetos = false;
        animais = false;
    }
    if (item == 3) {
        aleatorias = true;
       objetos = false;
        musica = false;
         animais = false;
    }

Object[] options3 = {“Sim”, “Não”};
int confirmar3 = JOptionPane.showOptionDialog(null, “Escolher nova palavra desta categoria”, “Nova categoria”, JOptionPane.DEFAULT_OPTION, JOptionPane.YES_OPTION, null, options3, options3[1]);
if (confirmar3 == 0) {
zeraModel();
escolhePalavra(); //so difere do recomeco, porque nao pergunta se quer jogar de novo…
//e recomeço agora envolve o escolhe palavra separadamente por isto.
principal();
}

}                                        

private void jBescolhePalavraActionPerformed(java.awt.event.ActionEvent evt) {
    //para a primeira vez
    //ve se botao 4 e 5 estao funcionando
}

public static void main(String args[]) {

    //esolher palavra automatico
    //escolhe palavra automaticamente...





    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new Forca_1().setVisible(true);

        }
    });
}
// Variables declaration - do not modify
private javax.swing.JButton jBconfirmaPalavra;
private javax.swing.JButton jBescolhePalavra;
private javax.swing.JButton jButton2;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JLabel jLErrou;
private javax.swing.JLabel jLTamanho;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLderrotas;
private javax.swing.JLabel jLerros;
private javax.swing.JLabel jLletrasDitas;
private javax.swing.JLabel jLlugarLetra;
private javax.swing.JLabel jLpalavraCerta;
private javax.swing.JLabel jLpalavraCerta2;
private javax.swing.JLabel jLvitorias;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JTextField jTl1;
private javax.swing.JTextField jTl2;
private javax.swing.JTextField jTl3;
private javax.swing.JTextField jTl4;
private javax.swing.JTextField jTl5;
private javax.swing.JTextField jTl6;
private javax.swing.JTextField jTl7;
private javax.swing.JTextField jTl8;
private javax.swing.JTextField jTletra;
// End of variables declaration

}
[/code]

e o ajuda:


/*
 * Ajuda.java
 *
 * Created on 1 de Janeiro de 2004, 04:45
 */

package jogo_da_forca;

/**
 *
 * @author  raghyjose
 */
public class Ajuda extends javax.swing.JFrame {
    
    /** Creates new form Ajuda */
    public Ajuda() {
        setLocationRelativeTo(null);
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();

        setTitle("Ajuda");

        jPanel1.setBackground(new java.awt.Color(255, 255, 204));

        jLabel1.setText("Use o inicia para comecar o jogo.");

        jLabel2.setText("A cada jogada uma confirmacao ira propor novo jogo.");

        jLabel4.setText("Voce pode errar 20 vezes.");

        jLabel3.setText("Escolha uma letra e confirme com o botao.");

        jLabel6.setText("Tente acertar a palavra escolhida.");

        jLabel5.setText("Dicas: Utilize vogais primeiro.");

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel7.setText("Jogo Da Forca");

        jLabel8.setText("alt _Z = atalho para confirmar letra.");

        jLabel9.setText("Contato: Raghy30@hotmail.com");

        jLabel10.setText("A letra tem foco automatico, basta manter o mouse em cima");

        jLabel11.setText("do confirma, para agilizar o uso.");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(115, Short.MAX_VALUE)
                .addComponent(jLabel7)
                .addGap(108, 108, 108))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addContainerGap(54, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel3)
                .addContainerGap(54, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel6)
                .addContainerGap(54, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel4)
                .addContainerGap(54, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel5)
                .addContainerGap(54, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel2)
                .addContainerGap(54, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel8)
                .addContainerGap(157, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel10)
                .addContainerGap(15, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel9)
                .addContainerGap(180, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel11)
                .addContainerGap(178, Short.MAX_VALUE))
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel2, jLabel3, jLabel4, jLabel5, jLabel6});

        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel7)
                .addGap(18, 18, 18)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel2)
                .addGap(32, 32, 32)
                .addComponent(jLabel8)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE)
                .addComponent(jLabel10)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel11)
                .addGap(24, 24, 24)
                .addComponent(jLabel9)
                .addContainerGap())
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jLabel1, jLabel2, jLabel3, jLabel4, jLabel5, jLabel6});

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Ajuda().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration                   
    
}

coments… helps, etc são b

calma pessoal assim vocês vão assustar ele hahahhahha

elaborei esse exemplo agora rapidinho usando o básico do básico da linguagem

[code]import java.util.Random;
import java.util.Scanner;

public class JogoDaJorca {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
String[] vetPalavras = new String[10];

    System.out.println("---Imforme 10 palavra para o banco do jogo---");
    //loop para ler as palavras
    for(int i=0; i<vetPalavras.length; i++){
        System.out.print((i+1)+"° palavra: ");
        vetPalavras[i] = entrada.nextLine();
    }
    
    String plvSorteada = vetPalavras[new Random().nextInt(vetPalavras.length)];

    System.out.println("Dica: a palavra tem "+ plvSorteada.length()+" letras");
    
    char[] letrasPlv = plvSorteada.toCharArray();
    char[] partesDescobertas = new char[letrasPlv.length];
    
    for(int i=0; i<partesDescobertas.length; i++){
        partesDescobertas[i] = '_';
    }
    int erros = 0;
    int acertos = 0;
    
    for(int i=0; i<partesDescobertas.length; i++){
        System.out.print(partesDescobertas[i]+" ");
    }
    System.out.println();
    do{
        System.out.println("Você ainda pode cometer "+(8-erros)+" erros");
        System.out.print("Digite uma letra que você acha que pertence a palavra: ");
        char letra = entrada.nextLine().charAt(0);
        boolean existe = false;
        
        for(int i=0; i<letrasPlv.length; i++){
            if(letrasPlv[i] == letra){
                acertos++;
                partesDescobertas[i] = letra;
                existe = true;
            }
        }
        
        if(existe == false){ // poderia ser so (!existe)
            erros++;
        }
        
        System.out.println();
    }while(erros<=7 && acertos<plvSorteada.length());
    
    if(erros>=7){
        System.out.println("Você perdeu! a palavra correta era "+plvSorteada);
    }else{
        
        for(int i=0; i<partesDescobertas.length; i++){
            System.out.print(partesDescobertas[i]+" ");
        }
        System.out.println();
        System.out.println("Parabéns você venceu!");
    }
}

}
[/code]

faltam varias coisas como verificar se a letra já foi teclada entre outras

espero que use o exemplo para aprendizado e não só para responder o exercicio

estude o código e se quiser é só pedir para eu comentar (ainda não fiz isso porque estou com sono)

até a próxima!

sim, mas é que tenho o projeto pronto aqui.

valeu.

Hehehe,

Boa noite pessoal!!

Como nosso amigo InSeOfKl disse, fiquei assustado mesmo com esse baita código que o raghy postou… hehehe

Deve ser um jogo da forca profissionalzásso mesmo, uhaeuaeae…

Como eu falei, tenho pouco tempo de java no curso, mas fiquei muito curioso pelo código que ambos postaram, vou compilar aqui pra ver o que consigo extrair disso, mas meu exercício está quase pronto… Ficou bem modesto mas espero um dia poder fazer algo desse nível que vocês postaram, muito show de bola mesmo.

Mais uma vez obrigado pela grande força pessoal, vocês forem de grande ajuda para o meu modesto processo de aprendizado!!

Abração,

Eduardo.

heheheh

sabia que iria se assustar pois também sou iniciante (3 bimestre em Informática para Internet - IFRS) e me assustei um pouco com o código

também tive que fazer um jogo da forca simples mais como tive mais de um mês para fazer fiz um bem complexo com interface gráfica e tudo!

se quiseres posso postar o projeto aqui

até a próxima!

Claro InSeOfKn,

Posta seu projeto se você puder, conhecimento nunca é demais!

Estou começando em java agora, e venho de disciplina prévia de C/C++ e afins, ou seja, nada OO nem com interface gráfica, por isso tenho um pouco de dificuldade em entender alguns métodos de códigos que vocês postaram antes… Mas vamos aprendendo né? Tô no 2º semestre de Ciência da Computação e me interessei muito pela linguagem.

Um abraço,

Eduardo.

Ok, vou postar!! só esperem eu chegar em casa estou na escola agora

ta ai o projeto que fiz no eclipse como prometido

só salvem a imagem a baixo no endereço do pacote icones dentro do projeto com o nome de “caderno.png” porque não coube junto com o Attachments

InSeOfKn, não consegui roda seu código no Eclipse .
Ele abre o projeto mas não tem nenhuma classe, nada…
Porque será, alguém sabe ? hm

[quote=williamBittencourt]InSeOfKn, não consegui roda seu código no Eclipse .
Ele abre o projeto mas não tem nenhuma classe, nada…
Porque será, alguém sabe ? hm
[/quote]

estranho fis o Download e estava tudo la certinho

mais tentei importar e não deu dai criei um projeto com o mesmo nome e extrai o rar para o workspace e tudo funcionou corretamente