bild anzeigen

Yetkin

Grünschnabel
Hallo an allee!

ich habe eine kleine Probleme, könnte jemandem mir helfen?

ich möchte auf einem panel ein bild laden und das anzeigen lassen
ich habe die folgende code geschrieben aber leider sehe ich kein bild auf dem fenster

wo mache ich den hier fehler


package anzeigen;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CAnzeige extends JFrame {
Image bild;
int bildBreite,bildHoehe;
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JPanel jPanel2 = new JPanel();

//Construct the frame
public CAnzeige() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
void ladeBild(String dateiname)
{if(dateiname==null)
return;
MediaTracker mt=new MediaTracker(this);
Toolkit tk=Toolkit.getDefaultToolkit();
bild=tk.getImage("H:/Bild/Neubilder/Z0.gif");
mt.addImage(bild,0);
jPanel2.repaint();
try{
mt.waitForAll();
}catch(InterruptedException f){}
bildBreite=bild.getWidth(this);
bildHoehe=bild.getHeight(this);


}
public void paintComponent(Graphics g)
{
super.paintComponents(g);
if(bild!=null)
g.drawImage(bild,20,20,this);
}
public Dimension getPreferredSize()
{
return getMinimumSize();
}
public Dimension getMinimumSize()
{
return new Dimension(bildBreite,bildHoehe);
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setDefaultCloseOperation(HIDE_ON_CLOSE);
this.setEnabled(true);
this.setSize(new Dimension(1030, 750));
this.setTitle("Animation");
jPanel1.setBackground(Color.black);
jButton1.setText("Schrittweise");
jButton2.setText("Automatisch");
jButton3.setText("Neustart");
jButton4.setText("Szeneraio");
jButton5.setText("Beenden");
jPanel2.setBackground(Color.black);
contentPane.add(jPanel1, BorderLayout.NORTH);
jPanel1.add(jButton1, null);
jPanel1.add(jButton2, null);
jPanel1.add(jButton3, null);
jPanel1.add(jButton4, null);
jPanel1.add(jButton5, null);
contentPane.add(jPanel2, BorderLayout.CENTER);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}
 
wenn du ein bild einfach nur anzeigen willst
dann mach es so:
Code:
import java.awt.*;
import javax.swing.*;

public class Images extends JFrame
{
	Image img;
	
	public static void main(String args[])
	{
		JFrame f=new Images();
		f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
		f.setSize(320,240);
		f.setVisible(true);
	}
	
	Images()
	{
		super("images");
		//ladn
		img=getToolkit().getImage("robo.gif");
	}

	public void paint(Graphics g)
	{
		//zeichnen
		g.drawImage(img,100,100,this);
	}
}

irgendwie müsste das anders, mit init auch noch gehn(aber wurscht)

wenn du dann das bild auch noch drehen willst mach das:

Code:
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;

public class Images extends JFrame
{
	Image img;

	public static void main(String args[])
	{
		JFrame f=new Images();
		f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
		f.setSize(320,240);
		f.setVisible(true);
	}
	
	Images()
	{
		super("images");
		//wieder ladn
		img=getToolkit().getImage("robo.gif");
	}
	
	//Paint
	public void paint(Graphics g)
	{
		int winkel = 30; //drehwinkel
		//kann ma in grad angeben weil es eh unten umgerechnet wird
		
		Graphics2D g2=(Graphics2D) g;
		int iw=img.getWidth(this);//jo breite halt
	
		AffineTransform at=new AffineTransform();
		at.rotate(winkel*Math.PI/180.0,100,150);
		g2.setTransform(at);
		g.drawImage(img,100-iw/2,100-iw/2,this);
		// -iw/2 damit ma den mittelpunkt vom image angibt
	}
}

hoffe dir hat das was geholfen...

mfg
coolerouny
 
Zurück