elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  problema con el Graphics
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con el Graphics  (Leído 1,841 veces)
bash

Desconectado Desconectado

Mensajes: 258



Ver Perfil
problema con el Graphics
« en: 11 Febrero 2015, 03:05 am »

buenas a todos tengo un problema

tengo el siguiente codigo

Código
  1. package TileMap;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics2D;
  5. import java.awt.Graphics;
  6. import java.awt.Image;
  7. import java.awt.Toolkit;
  8. import java.io.File;
  9.  
  10. import javax.imageio.ImageIO;
  11. import javax.swing.JPanel;
  12.  
  13.  
  14. public class Tile extends JPanel{
  15.  
  16. private Graphics2D g2d;
  17. int [][]map1 = new int[][]{
  18. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
  19. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
  20. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  21. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  22. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  23. {0,0,0,0,0,2,2,0,0,1,1,1,1,1,0,0,0,0,0,0},
  24. {0,0,0,0,0,2,2,0,0,1,1,1,1,1,0,0,0,0,0,0},
  25. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  26. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
  27. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},
  28. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1},
  29. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1},
  30. {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1},
  31. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
  32. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
  33. };
  34.  
  35. public void paint(Graphics g){
  36. super.paint(g);
  37. g2d = (Graphics2D) g;
  38.  
  39.  
  40. Image im = null;
  41.  
  42.  
  43.  
  44. for(int row =0; row < 20; row++){
  45. for(int col=0; col< 15; col++)
  46. {
  47. int rc = map1[row][col];
  48. if(rc == 0){
  49.  g2d.setColor(Color.BLACK);
  50.  
  51. }
  52. if(rc == 1 ){
  53. g2d.setColor(Color.BLUE);
  54.  
  55.  
  56.  
  57. }
  58. if(rc == 2 ){
  59. g2d.setColor(Color.RED);
  60.  
  61. }
  62. g2d.fillRect(1+col*33,1+row*33, 33, 33);
  63.  
  64.  
  65. }
  66.  
  67. }
  68.  
  69.  
  70.  
  71. }
  72.  
  73.  
  74.  
  75. }


el compila bien y corre bien cuando depuro pero cuando hago el jar me sale en negro la pantalla , alguien me podria ayudar por favor ?

Mod: Tema modificado, recuerda usar etiquetas GeSHi


« Última modificación: 11 Febrero 2015, 03:11 am por engel lex » En línea

gracias por responder mis dudas
3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: problema con el Graphics
« Respuesta #1 en: 11 Febrero 2015, 03:35 am »

Si te fijas tu código da error, ya que sobrepasas el tamaño el length de tu arreglo. Diste vuelta el 15 por el 20. debería ser row < 15 , col < 20

Una buena costumbre es utilizar map1.length y map1[row].length.

Código
  1. for(int row = 0; row < map1.length; row++){
  2.    for(int col=0; col< map1[row].length; col++) {
  3.        int rc = map1[row][col];
  4. if (rc == 0)  {
  5.            g2d.setColor(Color.BLACK);
  6.        } else if (rc == 1 ) {
  7.            g2d.setColor(Color.BLUE);
  8.         } else if (rc == 2 ) {
  9.            g2d.setColor(Color.RED);
  10.        }
  11. g2d.fillRect(1+col*33,1+row*33, 33, 33);
  12.     }
  13. }



Por cierto, podrías utilizar un if ternario en tu asignación de color. Y no le veo la utilidad a tu Image im = null.

Si te funciona dilo para dar por cerrado el tema  :)

Suerte con el resto.


« Última modificación: 11 Febrero 2015, 03:45 am por Nac-ho » En línea

bash

Desconectado Desconectado

Mensajes: 258



Ver Perfil
Re: problema con el Graphics
« Respuesta #2 en: 11 Febrero 2015, 12:53 pm »

Buenas si es verdad , la verdad pense en su momento usar .length pero como no sabia que en un array de dos dimensiones podia hacer map1[row].length , lo de la imagen es por que tambien cada vez que trato de cargar una imagen(con ruta relativa o no) me tira una excepcion o no hace  nada , supongo que para eso buscare primero y si no posteare pero gracias eso dato que me disteme ayudo ... estaba bien perdido...  ;-) ;-) ;-) voy a leer mas..

lo de la etiqueta Geshi bueno le di pero en la pc(mac ) no salio quizas es un error es bueno chequear eso.
En línea

gracias por responder mis dudas
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: problema con el Graphics
« Respuesta #3 en: 11 Febrero 2015, 14:28 pm »

Para cargar una imagen en AWT:

Código
  1. Image image = ImageIO.read(new File("/ruta/a/tu/imagen"));

Es de vital importancia aprender a indentificar los errores que te muestra el compilador. Con eso te ahorarrás muchos problemas y pérdidas de tiempo.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cd+graphics
Software
lboechat 1 1,651 Último mensaje 9 Febrero 2005, 05:57 am
por Songoku
Graphics
Programación Visual Basic
CsarGR 2 1,437 Último mensaje 9 Abril 2006, 04:17 am
por G3N3S1S
Problema Wifiway 2.0 con grafica ATI radeon premium graphics directx 11
Wireless en Linux
Norlak 4 5,698 Último mensaje 18 Abril 2013, 21:06 pm
por rcoto
diferencias entre Procesadores intel con HD Graphics y sin HD Graphics
Hardware
Vjuan_ 6 3,826 Último mensaje 21 Diciembre 2012, 00:12 am
por Aprendiz-Oscuro
problema con graphics java « 1 2 3 »
Java
bengy 21 8,859 Último mensaje 15 Enero 2016, 02:56 am
por 0xFer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines