Hintergrundbild in Frame

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
So mal ne ander FRage:

Wie kann ich ein hintergrundbild in einen frame reintun?
frame.setBackground...???



L-ectron-X hat diesen Beitrag am 28.10.2007 um 10:35 editiert.
Thema getrennt, Titel des Themas angepasst.
 
gemacht, doch funkt net.. was amch ich falsch?

Code:
package Spiel;
import java.awt.*;
import java.awt.event.*;
import java.lang.Math;
public class Example2402 extends Frame {
	private static final long serialVersionUID = 1L;
	private Image img;
	public static void main(String[] args) {
		Example2402 wnd = new Example2402();
	}
	public Example2402() {
		int zufall = 1 + (int) (Math.random() * 18);
		// super("Example2402");
		setBackground(Color.lightGray);
		setSize(600, 600);
		// WindowListener
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent event) {
				System.exit(0);
			}
		});
		// Bild laden
		img = getToolkit().getImage("http://www.battleofkings.de/game/img/gr_1.gif");
		MediaTracker mt = new MediaTracker(this);
		mt.addImage(img, 0);
		try {
			// Warten, bis das Image vollständig geladen ist,
			mt.waitForAll();
		} catch (InterruptedException e) {
			// nothing
		}
		setVisible(true);
	}
	public void paint(Graphics g) {
		g.drawImage(img, 0, 25, this);
	}
}
 
versteh ich nicht hab deinen code gerade getestet, bei mir zeigt es ein bild an ???:L

bist du dir sicher,dass der pfad zu deinem bild richtig ist ?
und außerdem meines wissens solltest du in der paint methode noch super.paint(g) aufrufen.
 
Nimm lieber ImageIO und spar dir den Tracker.
Ausserdem solltest du auf Swing umsteigen, AWT ist veraltet.
Code:
public class Example2402 extends Frame {
	private static final long serialVersionUID = 1L;
	private Image img;

	public static void main(String[] args) {
		Example2402 wnd = new Example2402();
	}

	public Example2402() {
		int zufall = 1 + (int) (Math.random() * 18);
		// super("Example2402");
		setBackground(Color.lightGray);
		setSize(600, 600);
		// WindowListener
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent event) {
				System.exit(0);
			}
		});
		// Bild laden
		try {
			img = ImageIO.read(new URL("http://www.battleofkings.de/game/img/gr_1.gif").openStream());
		} catch (MalformedURLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		setVisible(true);
	}

	public void paint(Graphics g) {
		super.paint(g);
		g.drawImage(img, 10, 25, this);
	}
}
 
Oo ich habs noch nicht eingestzt gehabt..
Erst jetzt seh ich das es Frame ist und Nicht JFrame
Ich habe ein JFrame in dem 25 JLabels sind und als Hintergrund will ich dort das Bild haben, und zwar wiederholend. Was muss man noh ändern?
 
Einem JLabel kann ein ImageIcon gesetzt werden.
Dann nimmst du einfach GridLayout mit der entsprechenden Anzahl Spalten und addest die Labels.
 
Oh man...
Ich habe label1, label2, label3, ... bis label25 jeweils mit einem Bild drinne.Wie kan ich da GridLayout buntzen damit es ein 5x5 Bilderreihe ergibt ohn Lücken?
 
Code:
GridLayout layout = new GridLayout(5,5,0,0);
Etwas Eigeninitiaive würde dir übrigens nicht schaden...
 
Wo muss man das hintun damit es funktioniert?

Ausser dem habe ich es so gemacht:

Code:
if (id25 == 1) {
			final JLabel label25 = new JLabel(Holzfällerhütte);
			frame.add(label25);
		} else {
			final JLabel label25 = new JLabel(Wald);
			frame.add(label25);
		}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben