Hintergrundbilder in JFrame einstellen

Sind irgendwelche Methoden verfügbar, um ein Bild als Hintergrund in einem JFrame ?

Solutions Collecting From Web of "Hintergrundbilder in JFrame einstellen"

Es gibt keine integrierte Methode, aber es gibt mehrere Möglichkeiten, dies zu tun. Die einfachste Art, an die ich im Moment denken kann, ist:

  1. Erstellen Sie eine Unterklasse von JComponent .
  2. paintComponent(Graphics g) Sie die Methode paintComponent(Graphics g) , um das Bild zu zeichnen, das Sie anzeigen möchten.
  3. JFrame Sie den Inhaltsbereich des JFrame auf diese Unterklasse fest.

Ein Beispielcode:

 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)); 

Beachten Sie, dass dieser Code nicht die Größe des Bilds an den JFrame , wenn dies gewünscht ist.

Versuche dies :

 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); } } 

Dies führt dazu, dass der Inhaltsbereich kein Container ist. Wenn Sie etwas hinzufügen möchten, müssen Sie eine JPanel ableiten und die paintComponent-Methode überschreiben.

Sie können die Hintergrund-Panel- class verwenden. Es führt das benutzerdefinierte Bild wie oben beschrieben durch, bietet Ihnen jedoch die Möglichkeit, das Bild skaliert, gekachelt oder normal groß darzustellen. Außerdem wird erläutert, wie Sie ein JLabel mit einem Bild als Inhaltsbereich für den Frame verwenden können.

 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(); } } 

Schaut euch den folgenden Link an

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