Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Aikanáro Anário en 15 Octubre 2011, 18:55 pm



Título: Pasando un diseño estructurado a orientado a objetos
Publicado por: Aikanáro Anário en 15 Octubre 2011, 18:55 pm
La semana pasada tuvimos que hacer el juego del Ahorcado (hangman), pero el profesor me corrigió porque hice un diseño muy estructurado. Solo cree un una clase con un JFrame y ahí metí todos los métodos, eventos, gui, todo junto.

Ahora estoy modificando el código para que quede Orientado a Objetos, pero tengo problemas para comunicar los objetos entre sí, sobre todo los métodos y eventos con la interfaz gráfica.

La interfaz es esta:
(http://i333.photobucket.com/albums/m399/Link02/ahorcado.gif)

Lo que hice fue dividir cada panel (palabra, letra, intentos y mensajes), para cada panel cree una clase, después cree una clase llamada Ventana en la que cree dos paneles, izquierdo y derecho, en el de la izquierda puse las instancias de las clases que ya mencioné y en el de la derecha la instancia de la clase del panel imagen. Y está todo bien.

Pero ahora no sé donde poner los métodos y los eventos. El profesor dijo algo como que había que crear un clase con los métodos aparte y después crear una instancia para comunicar los métodos con la interfaz, pero estoy teniendo problemas.
Por ejemplo:

Tengo este método para mostrar tantos guiones como letra tiene la palabra (gato =  _ _ _ _ )
Código
  1. public void presentarRayas(){
  2. for(int i=0; i<palabraElegida.length(); i++){
  3. guionesBajosExternos +="_ ";
  4. }
  5. lbl_palabra.setText(guionesBajosExternos);
  6. tamanoG = lbl_palabra.getFont();
  7. lbl_palabra.setFont(new Font(tamanoG.getFontName(),tamanoG.getStyle(), 20));
  8. }

Ese método usa la etiqueta lbl_palabra, que se encuentra en otra clase: la clase PanelPalabra, cuando declaré el JLabel le puse el método de acceso protected y después lo cambié a public, pero como quiera me sigue marcando error lbl_palabra can´t be resolved.

No sé que tengo que hacer, para ese método por ejemplo podría ponerlo en la clase PanelPalabra y ya no me daría error, pero hay métodos en los que tengo que usar dos JLabels distintos y no sé entonces como podría "acomodarlo", además no estoy seguro de que esa sea la mejor forma....