Hi Leute,
ich habe ein Programmcode, bei dem ich ein Bild öffters in ein Fenster kopieren will. Leider bekomme ich aber die einzelnen Bilder nicht angezeigt und ich finde keinen Fehler im Code.
Kann mir vielleicht jemand helfen und mir sagen was ich falsch mache??
[/code]
ich habe ein Programmcode, bei dem ich ein Bild öffters in ein Fenster kopieren will. Leider bekomme ich aber die einzelnen Bilder nicht angezeigt und ich finde keinen Fehler im Code.
Kann mir vielleicht jemand helfen und mir sagen was ich falsch mache??
Code:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import javax.imageio.ImageIO;
public class CBildCopy
{
public static void main(String[] args)
{
BilderRahmen frame = new BilderRahmen ();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class BilderRahmen extends JFrame
{
public static final int width = 300;
public static final int height = 200;
public BilderRahmen()
{
super("Kopierte Bilder");
setSize(width, height);
//Grundfläche in Rahmen hinzufügen
ImagePanel panel = new ImagePanel();
Container c = getContentPane();
c.add(panel);
}
}
//Eine Grundfläche die ein gekacheltes Bild anzeigt
class ImagePanel extends JPanel
{
private Image image;
public ImagePanel()
{
//Bild anfordern
image = Toolkit.getDefaultToolkit().getImage("carmen.jpg");
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(image, 0);
try
{
tracker.waitForID(0);
}
catch(InterruptedException exception)
{
}
try
{
image = ImageIO.read(new File("carmen.jpg"));
}
catch(IOException exception)
{
exception.printStackTrace();
}
}
public void Zeichne(Graphics g)
{
super.paintComponent(g);
if(image == null) return;
int imageWidth = image.getWidth(this);
int imageHeight = image.getHeight(this);
//Bild in die obere linke Ecke zeichen
g.drawImage(image, 0, 0, null);
//Bild kachelartig über Grundfläche verteilen
for(int i= 0 ; i * imageWidth <= getWidth(); i++)
for(int j = 0; j * imageHeight <= getHeight(); j++)
if(i+j >0)
g.copyArea(0, 0, imageWidth, imageHeight, i * imageWidth, j * imageHeight);
}
}
[/code]