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

cargar imagen

Estas en el tema de cargar imagen en el foro de Java en Foros del Web. Estoy haciendo mis primeras practicas con java, debido a la similtud que existe con actionscript 3 en su sintaxis (es logico, los dos son oop) ...
  #1 (permalink)  
Antiguo 14/03/2008, 21:56
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 5 meses
Puntos: 5
cargar imagen

Estoy haciendo mis primeras practicas con java, debido a la similtud que existe con actionscript 3 en su sintaxis (es logico, los dos son oop) no me esta costando mucho...

En este caso estoy tratando de cargar una imagen en un JFrame, al darle click a un JButton... el codigo no me lanza ningun error, pero cuando le doy click al boton, no aparece la imagen de forma inmediata, sino que no entiendo por que, la foto aparece cuando manualmente redimenciono el JFrame colocando el mouse en los bordes, haciendo click en ellos y arrastrando... por que? se supone que la foto debe aparecer inmediatamente despues de haber hecho click en el boton

El codigo que he hecho es:
Código:
package javaapplication1;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class imagen {
    
    private JFrame jf;
    private JButton jb;
    private JLabel jl;
    
    public static void main(String[] args){
        new imagen();
    }
    public imagen(){
        jf=new JFrame("Carga de imagen");
        jf.getContentPane().setLayout(new FlowLayout());
        jb=new JButton("ver imagen");
        jf.getContentPane().add(jb);
        
        jb.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent d){
                try{
                    ImageIcon icono= new ImageIcon("c:/Appserv/www/kayros/img/botones2.jpg");
                    jl=new JLabel(icono);
                    jl.setSize(142, 315);
                    Image imagen=icono.getImage();
                    jf.getContentPane().add(jl);
                }
                catch(NumberFormatException ev){
                    String mensaje=new String("no funciona");
                    System.out.println(mensaje);
                }
            }
        });
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jf.pack();
        jf.setVisible(true);
    }
}
Gracias a todos
  #2 (permalink)  
Antiguo 15/03/2008, 04:01
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Re: cargar imagen

La carga de imágenes es asíncrona.

http://www.chuidiang.com/chuwiki/ind..._im%C3%A1genes

Cita:
Cuando llamamos a cualquiera de estos métodos para cargar la imagen, la carga puede tardar y se hace en "background". Cualquiera de estos métodos nos devuelve el control inmediatamente, aunque la imagen todavía no se ha cargado.

El resultado es que nuestra ventana puede aparecer sin nuestra imagen y no aparecer hasta que le hagamos un refresco, bien desde código, bien "estirando" la ventana con el ratón o cualquier otro método.
jf.getContentPane().repaint();

Saludos,
  #3 (permalink)  
Antiguo 15/03/2008, 13:49
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 5 meses
Puntos: 5
Re: cargar imagen

gracias, funciona muy bien
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 10:26.