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?
- Inicie sesión o regístrese para enviar comentarios
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?
carga de imagen
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
Algo como esto?
Aqui te va el código fuente:
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:
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!