Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2011, 18:06
link01
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 12 años, 7 meses
Puntos: 0
Pasar de código estructurado a Orientado a Objetos

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.



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 Java:
Ver original
  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....
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/