Holas, tengo un gran problema, necesito entregar un trabajo practico URGENTE!, es el juego del Ahorcado con interfaz grafica con AWT, el juego en consola esta funcionando perfectamente, el problema es pasarlo a la ventana, si alguno podria ayudarme con esto o decirme como puedo hacer para visualizar los metodos ya creados en la ventana se los agradeceria muchisimo ya que tengo que entregarlo el martes por la mañana!!
CODIGO AHORCADO:
package Ahorcado;
import java.io.*;
import java.util.*;
public class Ahorcado /*extends Frame*/{
String palabra = new String(); // Palabra a adivinar.
char letrasAdivinadas[];
String letrasIntroducidas = "";
String[] palabras;
String cadena;
public Ahorcado() {
}
public String leerArchivo() {
List<String> numberList = new ArrayList<String>();
BufferedReader palabra = null;
try
{
palabra = new BufferedReader(new FileReader("palabras.txt"));
String arreglo;
while((arreglo = palabra.readLine()) != null)
numberList.add(arreglo);
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
palabra.close();
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
String[] arreglo = new String[(numberList.size())];
numberList.toArray(arreglo);
for (int i =0; i < arreglo.length; i++);
Random r = new Random( new Date().getTime());
String adivinar = arreglo[r.nextInt(arreglo.length)];
return adivinar;
}
public void pedirPalabra() throws IOException {
palabra = leerArchivo();
}
public char solicitarLetra(){
try { InputStreamReader reader = new InputStreamReader (System.in);
return (char)reader.read();
} catch (IOException e) {e.printStackTrace();}
return '.';
};
public char pedirLetra() throws IOException {
System.out.println("Introduce una letra:");
String cad = String.valueOf(solicitarLetra());
letrasIntroducidas = letrasIntroducidas + cad.charAt(0) + " ,";
return cad.charAt(0);
}
public void buscarLetra(char letra) {
int pos = 0;
do {
pos = palabra.indexOf(letra, pos);
if (pos != -1) {
letrasAdivinadas[pos] = letra;
pos++;
}
}
while (pos != -1);
}
public void contadorPalabra() {
String cadena = palabra;
System.out.println("La palabra que hay que advinar tiene " + cadena.length() + " letras");
}
public void inicializarPalabra() {
letrasAdivinadas = new char[palabra.length()];
for (int i = 0; i <= palabra.length() - 1; i++) {
letrasAdivinadas[i] = '_';
}
}
public void mostrarJuego() {
for (int i = 0; i <= palabra.length() - 1; i++) {
System.out.print(letrasAdivinadas[i] + " ");
}
System.out.println();
System.out.println("Letras que ya introduciste: " + letrasIntroducidas);
}
public int finJuego() {
int res = 0;
for ( int i = 0; i < palabra.length()-1 ; i++) {
if (letrasAdivinadas[i] == '_') {
res = 1;
}
else {
res = 0;
}
}
return res;
}
public static void main(String[] args) throws IOException {
/* char c;
Ahorcado Jugar = new Ahorcado();
Jugar.pedirPalabra();
Jugar.contadorPalabra();
Jugar.inicializarPalabra();
do {
c = Jugar.pedirLetra();
Jugar.buscarLetra(c);
Jugar.mostrarJuego();
}
while (Jugar.finJuego() == 1);
*/
}
}
CODIGO VENTANA:
package Ahorcado;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.IOException;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Ventana extends Frame implements ActionListener{
java.awt.Button button1;
java.awt.TextField textField1;
java.awt.TextField textField2;
java.awt.Label label1;
Ahorcado ahorcado = new Ahorcado();
/**
*
*/
private static final long serialVersionUID = 1L;
public void init(){
setLayout(new FlowLayout(FlowLayout.CENTER,10,5));
setSize(426,200);
button1 = new java.awt.Button();
button1.setLabel("Ingresar");
button1.setBackground(new Color(12632256));
add(button1);
textField1 = new java.awt.TextField();
add(textField1);
textField2 = new java.awt.TextField();
add("South", textField2);
label1 = new java.awt.Label("Introduzca una letra");
add(label1);
/* MenuBar mb = new MenuBar();
Menu m1 = new Menu("Salir");
mb.add(m1);
setMenuBar(mb);
*/
// MiActionListiner m1 = new MiActionListiner();
button1.addActionListener(this);
textField1.addActionListener(this);
textField2.addActionListener(this);
//m1.addActionListener(this);
addWindowListener(new EscuchaEventosVentana());
}
public static void main(String[] args) throws IOException {
Ventana miVentana = new Ventana();
miVentana.init();
miVentana.setVisible(true);
char c;
Ahorcado Jugar = new Ahorcado();
Jugar.pedirPalabra();
Jugar.contadorPalabra();
Jugar.inicializarPalabra();
do {
c = Jugar.pedirLetra();
Jugar.buscarLetra(c);
Jugar.mostrarJuego();
}
while (Jugar.finJuego() == 1);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Se presiono el boton (desde ventana) ");
//e.getSource()
//ahorcado.leerArchivo();
}
public class EscuchaEventosVentana implements WindowListener {
//Este evento es cuando se pulsa la X
public void windowClosing(WindowEvent e) {
System.out.println("Solicita cerrar la ventana");
Frame ventana = (Frame)e.getWindow();
ventana.setVisible(false);
ventana.dispose();
}
//Ocurre cuando ya se cerró la ventana
public void windowClosed(WindowEvent e) {
System.out.println("Ventana cerrada; terminar");
System.exit(0);
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
}
}