Bildproblem

Status
Nicht offen für weitere Antworten.

Fragender

Bekanntes Mitglied
Hallo

ich habe bei folgendem Code das Problem, dass das Bild nicht angezeigt wird. Kann mir jemand helfen?

Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Test extends JFrame implements ActionListener{ 
   private JFrame frame; 
   private Image[] Bild = new Image[5];
   final String Pfad = "C:\\Java\\Bilder\\";
   private Graphics Grafik;
   
   public void collectImages ()
   {
     Toolkit Werkzeug = Toolkit.getDefaultToolkit();
     MediaTracker Transporter = new MediaTracker (this);
     for (int i = 1; i <=5; i++)
     {
     	Bild[i] = Werkzeug.getImage 
        (Pfad + Integer.toString(i) + "Bild.jpg");
       Transporter.addImage (Bild[i], i);
       try
       {
         Transporter.waitForID (i);
       }
       catch (InterruptedException x)
       {
         JOptionPane.showMessageDialog(null,"Bildstörung");
       }
     }
   }
   
   public Test() 
   { 
      frame = new JFrame("Test"); 
      Toolkit tk = Toolkit.getDefaultToolkit(); 
      int xSize = ((int) tk.getScreenSize().getWidth()); 
      int ySize = ((int) tk.getScreenSize().getHeight()); 
      frame.setSize(xSize, ySize); 
      frame.setUndecorated(true); 
      frame.getContentPane().setBackground(Color.blue); 
      JLabel anzeige = new JLabel("  Test!"); 
      anzeige.setFont(new Font("Comic Sans MS", Font.BOLD, 124));
      anzeige.setForeground(Color.WHITE);
      frame.add(anzeige); 
      frame.setVisible(true); 
      collectImages ();
      Anfang();
       
   } 
   
   public void Anfang(){
	   Grafik = getGraphics();
	   Grafik.drawImage (Bild[1],100,100,600,600, null);
   }
   
   public void actionPerformed (ActionEvent Ereignis)
   {
   }

   public static void main(String[] args)
   { 
      Test app = new Test(); 
   } 
}
 

Verjigorm

Top Contributor
getGraphics() aufrufen ist eigentlich IMMER falsch, ausser man weiss was man tut.

überschreib lieber die paintComponent von einem JPanel, welches du als Contentpane deklarierst.
 

Der Müde Joe

Top Contributor
Minibeispiel:

Code:
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Foo {
	private JFrame frame;

	private String path = "/home/xxx/Desktop/";

	public Foo() throws IOException {
		BufferedImage image = ImageIO.read(new File(path + "image.jpeg"));
		
		frame = new JFrame("Test");
		frame.setSize(500,500);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JPanel panel = new PicPanel(image);
		frame.getContentPane().add(panel);
		
		frame.setVisible(true);
	}

	public static void main(String[] args) throws IOException {
		Foo app = new Foo();
	}
	
	class PicPanel extends JPanel {
		
		private BufferedImage image;
		
		PicPanel(BufferedImage image) {
			this.image = image;
		}

		@Override
		public void paintComponent(Graphics g) {
			super.paintComponent(g);
			g.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
		}
		
	}
	
}
 

Marco13

Top Contributor
Schau mal ob die Pfade stimmen. Am besten mal mit System.out.println ausgeben, und mit File.exisits prüfen obs die Bilder gibt...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Bildproblem Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben