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

Imágenes

Estas en el tema de Imágenes en el foro de Java en Foros del Web. Buenas, Tengo una duda. Resulta que con las librerías swing y awt tengo un pequeño jueguito en el cual puedo mover un cuadrado de 20 ...
  #1 (permalink)  
Antiguo 29/12/2012, 21:02
 
Fecha de Ingreso: agosto-2011
Ubicación: Montevideo
Mensajes: 44
Antigüedad: 12 años, 8 meses
Puntos: 5
Imágenes

Buenas,

Tengo una duda. Resulta que con las librerías swing y awt tengo un pequeño jueguito en el cual puedo mover un cuadrado de 20 píxeles cuadrados con las flechas del teclado a través de un KeyListener.

Pero resulta que ya no quiero que sea un cuadrado dibujado con el g.fillRect(x, y, 20, 20); Necesito que sea ahora una imagen.

¿Alguien sabe cómo podría hacerlo?

Saludos,
Federico.
  #2 (permalink)  
Antiguo 29/12/2012, 21:41
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 4 meses
Puntos: 34
Respuesta: Imágenes

Despues de cargar la imagen la dibujas con g.drawImage(.....);
  #3 (permalink)  
Antiguo 29/12/2012, 22:22
 
Fecha de Ingreso: agosto-2011
Ubicación: Montevideo
Mensajes: 44
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Imágenes

Intenté hace lo siguiente:


Graphics g;
g = this.getGraphics();
Image imagen= Toolkit.getDefaultToolkit().getImage("imagen.png") ;
g.drawImage(imagen, 100, 100, this);
g.finalize();

La imagen no me la carga. Pero si hago un rectángulo usando la siguiente sintaxis sí me lo carga:

g.setColor(Color.blue);
g.fillRect(0,0,100,100);

Nota: Las imágenes están ubicadas en el mismo directorio donde están las clases.
  #4 (permalink)  
Antiguo 29/12/2012, 23:55
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 4 meses
Puntos: 34
Respuesta: Imágenes

prueba con:
g.drawImage(imagen, 0, 0, this);

Si no mal recuerdo el 2 y 3 parametro es para especificar donde se dibujara la imagen (x, y) dentro del lienzo.
  #5 (permalink)  
Antiguo 30/12/2012, 18:28
 
Fecha de Ingreso: agosto-2011
Ubicación: Montevideo
Mensajes: 44
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Imágenes

Sige sin funcionar. Este es mi código:
Si alguien lo hace funcionar y me pasa el nuevo código se lo agradecería un montón. Sé que le imagen funciona y está en la dirección correcta ya que lo he intentado con otros métodos y la imagen ha cargado, aunque no de la forma que lo quería, pero sí lo ha hecho. El tema es que quiero usar drawImage para esto.

Código Java:
Ver original
  1. import java.awt.*;
  2. import javax.swing.*;
  3.  
  4. public class mainClass extends JFrame implements Runnable {
  5.  
  6.     private static final long serialVersionUID = 1L;
  7.     boolean condicion;
  8.  
  9.     // Alto y largo de la pantalla del juego
  10.     public final int width = 640, height = 480;
  11.     Thread threadprincipal;
  12.  
  13.     // Inicialización de la ventana
  14.     public mainClass() {
  15.        
  16.         // Definimos la ventana
  17.         this.setTitle("Mi título");
  18.         this.setBounds(100, 100, width, height);
  19.         this.setVisible(true);
  20.         this.setResizable(false);
  21.         this.setIgnoreRepaint(true);
  22.         this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  23.  
  24.         threadprincipal = new Thread(this);
  25.         threadprincipal.start();
  26.     }
  27.  
  28.     public void terminarJuego() {
  29.         this.condicion = false;
  30.     }
  31.    
  32.     // Clase Runnable
  33.     public void run() {
  34.         condicion = true;
  35.         while (condicion) {
  36.             render();
  37.             esperar(20);
  38.         }
  39.         System.exit(0);
  40.     }
  41.    
  42.     public void esperar(int tiempo){
  43.         try { Thread.sleep(tiempo); }
  44.         catch (InterruptedException e) {}
  45.     }
  46.    
  47.     // Dibujo del juego
  48.     private void render() {
  49.         Graphics g;
  50.         g = this.getGraphics();
  51.        
  52.         Image img1 = Toolkit.getDefaultToolkit().getImage("char01down01.png");
  53.        
  54.         if (g != null) {
  55.             g.drawImage(img1, 0, 0, this);
  56.             Toolkit.getDefaultToolkit().sync();
  57.             g.finalize();
  58.         }
  59.     }
  60.  
  61.     // Método principal
  62.     public static void main(String[] args) {
  63.         mainClass window = new mainClass();
  64.     }
  65. }

Última edición por Elfede171; 30/12/2012 a las 19:02
  #6 (permalink)  
Antiguo 31/12/2012, 10:51
 
Fecha de Ingreso: agosto-2011
Ubicación: Montevideo
Mensajes: 44
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Imágenes

Encontré la forma:

1) Declaré esta variable dentro de la clase como atributo:
Image michar;

2) En el método con el nombre de la clase definí:
michar = new ImageIcon(this.getClass().getResource("miimagen.pn g")).getImage();

3) Creé un método el cual dibuja mi imagen:
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(michar, 50, 50, null);
}

4) En el método que dibuja los gráficos llamo al método paint:
paint(g);

Y listo. :)
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 12:46.