Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/03/2006, 15:32
dramatictone
 
Fecha de Ingreso: marzo-2006
Mensajes: 19
Antigüedad: 18 años, 2 meses
Puntos: 0
Ayuda con imágenes en Java

Hola,
escribo para ver si podéis echarme una mano con esto, porque a mí me tiene descolocado xD Lo que busco es una chorrada: "dibujar" una imagen en un JWindow. Para ello, me he definido una clase Lienzo en la que se supone "dibujaré" la imagen que le pase como argumento a la hora de crear dicho objeto:



public class Lienzo extends JPanel {
private BorderLayout borderLayout1 = new BorderLayout();
private String nombre_imagen;
private int ancho;
private int alto;

public Lienzo(String s, int nuevoAncho, int nuevoAlto) {
nombre_imagen = s;
ancho = nuevoAncho;
alto = nuevoAlto;

try {
jbInit ();
}
catch (Exception e) {
e.printStackTrace();
}
}

void jbInit () throws Exception {
this.setLayout(borderLayout1);
this.setSize(ancho, alto);
}

public void paint (Graphics g) {
super.paint (g);
Graphics2D g2D = (Graphics2D)g;
Image img = Toolkit.getDefaultToolkit().getImage(nombre_imagen );
g2D.drawImage(img, 0, 0, this);
g2D.drawLine(2, 2, 125, 211);
}
}


Y también una clase que hereda de JWindow, que tendrá un objeto de la clase Lienzo, al que le pasaré la ruta de la imagen a la hora de crearlo, algo así:


public class PantallaInicio extends JWindow {
private BorderLayout borderLayout1 = new BorderLayout();
private JPanel jPanel1 = new Lienzo ("Imagenes/logo.png", 384, 220);

public PantallaInicio () {
try {
jbInit ();
}
catch (Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {
this.setSize (new Dimension (384, 220));
this.getContentPane ().setLayout(borderLayout1);
this.getContentPane().add(jPanel1, BorderLayout.CENTER);
}
}


Luego me creo un objeto PantallaInicio, le hago un setVisible (true) y hala! JWindow en blanco. Lo cachondo es que si véis el método paint de la clase lienzo, debería dibujarme una línea, pero ni siquiera. Debe ser algo tontísimo, pero tras miles de pruebas, soy incapaz de hacerlo. Lo cachondo es que esto que pretendo conseguir ya lo había hecho con anterioridad en otras dos prácticas, pero en esta no hay cohones a que salga, ni aún reciclando código. Ántes de que preguntéis, sí, me he asegurado de que la imagen en cuestión existe, está en el directorio donde debe de estar, el archivo *.png está incluído en el proyecto (uso JBuilder 2005; una peste, sí, lo sé... ^^U). También probé a utilizar un JLabel y a "plantar" ahí la imagen, sin resultados positivos.



Mi sistema nervioso agradecería cualquier ayuda / orientación, así que gracias adelantadas x'D