Pessoal,
Li há um tempo atrás um cara aqui no fórum pedindo um código sobre um jogo da forca.
Aí achei uma idéia legal e estou tentando criar um jogo da forca… é meu primeiro projeto em java.
Bom, criei um aplet que monta uma tela com um botão para cada letra do alfabeto.
Ela cria tb um JLabel para cada letra da palavra do jogo, só que naum adiciona ao painel.
Quando eu clico em um botão de uma letra, o programa chega se a letra que eu digitei pertence a palavra, se pertencer ela adicona o botão com a letra ao painel.
O código ficou assim:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class JogoDaForca extends JApplet implements ActionListener {
private String palavra = "BRUNO";
private String dica = "Meu primeiro nome.";
private int qtdeLetras = palavra.length();
JButton[] botoes;
JLabel label;
JLabel[] letras;
JTextArea output;
public void init() {
montaTela();
}
public void montaTela() {
int posicaoX = 10, posicaoY = 90;
int posicaoLetraX = 10, posicaoLetraY = 10;
getContentPane().setLayout(null);
letras = new JLabel[qtdeLetras];
for(int i=0; i<qtdeLetras; i++){
letras[i] = new JLabel(new Character(palavra.charAt(i)).toString());
letras[i].setBounds(posicaoLetraX,posicaoLetraY, 30,20);
posicaoLetraX += 60;
}
label = new JLabel(dica);
label.setSize(280,20);
label.setLocation(10,40);
getContentPane().add(label, null);
botoes = new JButton[26];
for(int i=0; i<26; i++) {
botoes[i] = new JButton(new Character((char) (i + 65)).toString());
botoes[i].setBounds(posicaoX,posicaoY, 50,20);
botoes[i].addActionListener(this);
if ((i + 1) % 7 == 0){
posicaoX = 10;
posicaoY += 30;
}
else {
posicaoX += 60;
}
getContentPane().add(botoes[i], null);
}
output = new JTextArea (6,60);
output.setEditable (false);
output.setBounds(100,10,50,20);
output.setFont(
new Font("Courier", Font.PLAIN, 12));
getContentPane().add (output);
}
public void actionPerformed(ActionEvent e) {
JButton selectedButton = (JButton) e.getSource();
String selectedLetter = selectedButton.getText();
selectedButton.setEnabled(false);
procuraLetra(selectedLetter);
}
public void procuraLetra(String selectedLetter) {
String letraAtual;
for(int i=0; i<qtdeLetras; i++){
letraAtual = letras[i].getText();
//output.setText(letraAtual + " - " + selectedLetter);
//selectedLetter = "A";
//letraAtual = "A";
if(selectedLetter == letraAtual){
getContentPane().add(letras[i], null);
getContentPane().validate();
//output.setText("PASSOU");
}
}
}
}
Só que ele nunca cai dentro do if… sempre sai pelo else…
Ja tentei com == e equals.
E o que é pior, fiz um teste e, mesmo se entrar no if, as letras da palavra do jogo não aparecem na tela.
Alguém tem alguma dica?