Software Guru Conference & Expo 2014

Insertar una imagen a en jpanel

Hola necesito insertar una imagen como un tipo logo en un JFrame, existe algun componente en la paleta de netbeans que me permita insertar la imagen?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ArenasMx

carga de imagen

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
public class Logo extends Component{
        /**
         *
         */

        private static final long serialVersionUID = 1901784943150215057L;
        BufferedImage log;
         public void paint(Graphics g){
                         g.drawImage(log, 0,0, null);
                 }
                public Logo(){
                        try{
                                log = ImageIO.read(new File("redneuronal25.jpg"));
                        }
                        catch(Exception e){
                                System.out.print("Error en la carga de la imagen");
                                }
                        Toolkit.getDefaultToolkit().beep();
                }
        }<code>
bueno esto lo cargo dentro de jinternalframe no creo que haya problema para cargarlo en un jpanel
Imagen de OscarRyz

Algo como esto?

image with two labels

Aqui te va el código fuente:

    import javax.swing.*;
    import java.awt.Font;
    public class ImageAndLabels extends JPanel {
        public static void main( String [] args ) {
            JFrame frame = new JFrame("image and labels");

            frame.add( new ImageAndLabels("./logo.png", // logo
               "Grouping swing objects",                // label 1
               "<html>Hey.<br>"                         // label 2
               +"I want to make an object I can add to my java swing application.<br>"
               +"The object when instantiated would contain an image and 2 labels - "
               +"is there a way to do this using java swing?</html>") );

            frame.pack();
            frame.setVisible( true );
        }

        public ImageAndLabels( String imageURL, String textOne, String textTwo ) {
            setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
            add( new JLabel( new ImageIcon(imageURL )));
            add( new JLabel( textOne ){{
                setFont( new Font("Arial",  Font.BOLD, 20));
            }});
            add( new JLabel( textTwo ));        
       
        }
    }

JPanel con Imagen de Fondo

Bueno yo les tengo un modo de añadir imagen de fondo a un JPanel y si dan al JPanel la propiedad de Tamaño horizontal redefinible True y Tamaño vertical redefinible True, Verán como se adpata la imagen al JFrame que contiene al JPanel.

1.- (opcional) Dentro del JPanel añadido al JFrame ( por que no también JInternalFrame) dale click derecho y ve a "Personalizar Código".
2.- Código:

try {
     BgBorder borde = new BgBorder(ImageIO.read("/recursos/miImagenFondo.png")) );            
      jPanel1.setBorder(borde);            
} catch (IOException e) {
      System.out.println(e.getMessage());
}
</code

Y la clase mágica que hace el resto por nosotros....

<code>
public class BgBorder implements Border {

    private BufferedImage mImagen = null;

    public BgBorder(BufferedImage pImagen) {
        mImagen = pImagen;      
    }
    public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
        if (mImagen != null) {
            g.drawImage(mImagen, 0, 0, width, height, null);
        }
    }
    public Insets getBorderInsets(Component c) {
        return new Insets(0, 0, 0, 0);
    }
    public boolean isBorderOpaque() {
        return true;
    }
}

No recuerdo de donde lo leí por la web pero me ha servido mucho para mejorar mis interfaces.

Un Saludo!