una ponerle poner imagen fondo como colocar cambiar java image swing background jframe

java - ponerle - Establecer imágenes de fondo en JFrame



poner imagen en jlabel java (4)

¿Hay algún método disponible para establecer una imagen como fondo en un JFrame ?


No hay un método incorporado, pero hay varias formas de hacerlo. La manera más directa que puedo pensar en este momento es:

  1. Crea una subclase de JComponent .
  2. Reemplace el paintComponent(Graphics g) para pintar la imagen que desea visualizar.
  3. Establezca el panel de contenido del JFrame para que sea esta subclase.

Algunos ejemplos de código:

class ImagePanel extends JComponent { private Image image; public ImagePanel(Image image) { this.image = image; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, this); } } // elsewhere BufferedImage myImage = ImageIO.read(...); JFrame myJFrame = new JFrame("Image pane"); myJFrame.setContentPane(new ImagePanel(myImage));

Tenga en cuenta que este código no maneja el cambio de tamaño de la imagen para que se ajuste al JFrame , si eso es lo que quería.


Prueba esto :

import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class Test { public static void main(String[] args) { JFrame f = new JFrame(); try { f.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("test.jpg"))))); } catch (IOException e) { e.printStackTrace(); } f.pack(); f.setVisible(true); } }

Por cierto, esto dará como resultado que el panel de contenido no sea un contenedor. Si desea agregar cosas, debe subclasificar un JPanel y anular el método paintComponent.


Puedes usar la clase de Panel de fondo . Realiza la pintura personalizada como se explicó anteriormente pero le ofrece opciones para mostrar la imagen a escala, en mosaico o en tamaño normal. También explica cómo puede usar un JLabel con una imagen como el panel de contenido para el marco.


import javax.swing.*; import java.awt.*; import java.awt.event.*; class BackgroundImageJFrame extends JFrame { JButton b1; JLabel l1; public BackgroundImageJFrame() { setSize(400,400); setVisible(true); setLayout(new BorderLayout()); JLabel background=new JLabel(new ImageIcon("C://Users//Computer//Downloads//colorful_design.png")); add(background); background.setLayout(new FlowLayout()); l1=new JLabel("Here is a button"); b1=new JButton("I am a button"); background.add(l1); background.add(b1); } public static void main(String args[]) { new BackgroundImageJFrame(); } }

echa un vistazo al enlace a continuación

http://java-demos.blogspot.in/2012/09/setting-background-image-in-jframe.html