Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con el juego de HUNDIR LA FLOTA

Estas en el tema de Problema con el juego de HUNDIR LA FLOTA en el foro de Java en Foros del Web. Hola a todos! Necesito ayuda urgente, espero que podais ayudarme, por favor... os cuento.... Estoy haciendo una practica en Java, es la de hundir los ...
  #1 (permalink)  
Antiguo 27/04/2011, 12:33
 
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Problema con el juego de HUNDIR LA FLOTA

Hola a todos!
Necesito ayuda urgente, espero que podais ayudarme, por favor... os cuento....

Estoy haciendo una practica en Java, es la de hundir los barcos, cuando le doy a ejecutar y a la opcion de que me pida el tamaño del pañel y lo relleno le doy a aceptar, y en ese momento me deberia de aparecer el panel dibujado, que no me aparece a no ser que maximice la ventana.

Según me han comentado debo usar repaint(), pero no se donde ni como, y por mucho que intento buscar información no encuentro nada sobre esto.

Otro problema es que necesito enumerar cada casilla al lado, pero no se como poner ese número al lado de cada casilla, ya que yo las casillas las tenia enumeradas dentro, por ejemplo la primera casilla ponia encima (0,0), pues ahora no debe poner nada, y debe poner 0 en su fila y 0 en su columna, (como en el panel del juego de verdad).

Por favor ayudadme!, os lo agradeceria de todo corazon!, es la unica asignatura que me queda de la carrera y estoy desesperadita.

Gracias a todos!
  #2 (permalink)  
Antiguo 28/04/2011, 01:48
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Problema con el juego de HUNDIR LA FLOTA

hola, amiga.

Mira el repaint(); es un metodo que traen los panels de java, lo ejecutas despues de haver "pintado" toda tu estructura,
No sé en que parte estas pintado tus cuadros, lo recomendable es que sobreescribas el método paint(), asi no tendras problemas de ese tipo.

y con los numeros, no sé como los estabas dibujando antes, con Graphics.drawString()? si es así solo modifica las coordenadas de x o y segun el caso, y si no investiga sobre ese metodo.

espero haberte ayudado saludos.
  #3 (permalink)  
Antiguo 28/04/2011, 08:10
 
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con el juego de HUNDIR LA FLOTA

Muchas gracias por tu respuesta, el problema es que yo no uso paint para pintar los paneles, por ejemplo te adjunto un trozo de codigo de mi menu:

//Escribir tableros con los datos introduccidos por el usuario

p1 = new JPanel();
p1.setLayout(new GridLayout(alto,ancho));
boton = null;
for(int i = 0; i <alto; i++){
for(int j = 0; j <ancho; j++){
p1.add(boton = new JButton(i+","+j));
boton.addActionListener(new OyenteBoton1());
}
}
p2 = new JPanel();
p2.setLayout(new BorderLayout());
tablero = new JLabel("Tablero");
p2.add(tablero,BorderLayout.NORTH);
p2.add(p1,BorderLayout.CENTER);
p3 = new JPanel();
p3.setLayout(new GridLayout(alto,ancho));

.........
.........

Esto es lo que dibuja en el contenedor cada uno de los paneles, que son los tableros, como ves no utiliza paint.

Gracias!!!
  #4 (permalink)  
Antiguo 28/04/2011, 11:02
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Problema con el juego de HUNDIR LA FLOTA

am. bueno eso lo haces en donde en el constructor?
podrias intentar poner
Cita:
this.setVisible(true);
al terminar de agregar tus panels
  #5 (permalink)  
Antiguo 28/04/2011, 15:11
 
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con el juego de HUNDIR LA FLOTA

Millones de gracias!!!!!, me funciona con esa función!!!!!!!.
Me podrías ayudar para numerar el panel poniendo los números por fuera, para numerar así las filas y las columnas?
  #6 (permalink)  
Antiguo 28/04/2011, 15:40
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Problema con el juego de HUNDIR LA FLOTA

Hola, que bien,
Mira am... creo que lo que kieres es algo asi

0 1 2 3 4 5
0
1
2
3
4
5

y dentro de eso dibujas los paneles vdd? porque no distribuyes, los Labels con los paneles. Si es un Grid podrias poner en la primera fila y columna Labels y en las restantes entrarian tus Panels
  #7 (permalink)  
Antiguo 28/04/2011, 16:04
 
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con el juego de HUNDIR LA FLOTA

Mis tableros son dos, la implementacion de una de ellos por ejemplo seria esta:

p1 = new JPanel();
p1.setLayout(new GridLayout(alto,ancho));
boton = null;
for(int i = 0; i <alto; i++){
for(int j = 0; j <ancho; j++){
p1.add(boton = new JButton());
boton.addActionListener(new OyenteBoton1());
}
}

¿Como tendría que implementar para enumerar las filas y las columnas tal y como me has indicado?
Gracias!!
  #8 (permalink)  
Antiguo 28/04/2011, 16:26
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Problema con el juego de HUNDIR LA FLOTA

Hola
lo que se me ocurre, es que los agregues junto con los botones,
la vdd desconozco el orden en que los ordena el grid layout, si primero el eje X o Y

yo digo, si aorita agregas tienes 5 columnas para 5 botones, haz un grid con 6 columnas

1 columna para los labels que seria la columna 0, y las restantes iran tus botones

Ejemplo suponiendo que el grid llena primero la colmna X


p1 = new JPanel();
p1.setLayout(new GridLayout(alto,ancho));
boton = null;

for(int x = 0; x <alto+1; x++){
p1.add(new Label("x,0"));
for(int y = 0; y <ancho; y++){
p1.add(boton = new JButton());
boton.addActionListener(new OyenteBoton1());
}
}

Asi tendrias en la columna X, todos los Labels, faltaria para Y
  #9 (permalink)  
Antiguo 28/04/2011, 16:50
 
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con el juego de HUNDIR LA FLOTA

Claro pero el Label si lo pongo entre comillas sale textual, y necesito que vaya saliendo en numero que se va incrementando...
Donde podria poner para rellenar la fila, por que me rellena toda la columna, pero no se donde poner el de la fila????

Disculpa por todas las molestias, y gracias por tu ayuda!
  #10 (permalink)  
Antiguo 28/04/2011, 16:57
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Problema con el juego de HUNDIR LA FLOTA

algo asi
Código PHP:
for(int x 0<alto+1x++){
   
p1.add(new Label(x));
   for(
int y 0<anchoy++){
      if (
== 0){
         
p1.add(new Label(y));
     }
      
p1.add(boton = new JButton());
      
boton.addActionListener(new OyenteBoton1());
   }


Pero si quieres que el valor vaya incrementado, lo tendras que cambiar cuando se de click en un boton?

Entonces seria mejor que tengas un Array de Labels y hagas algo asi:

p1.add(LabelsY[Increment])

y aka podrias poner el oyente:

boton.addActionListener(new OyenteBoton1(LabelsY[Increment]));

que te parece?

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:23.