# JPanel in eine GUI einbinden



## I.E. (10. Aug 2014)

Hallo, 

hier sind zwei Codes - der eine für ein JFrame - mit dem ich absolut keine Probleme habe. Der andere Code erstellt ein JPanel, über den ich beispielsweise geometrische Figuren in den Frame einfügen kann.


```
import java.awt.Color;
import java.awt.Graphics;
import java.awt.*;
import javax.swing.*;

public class gui6 {

	public static void main(String[] args) {
		
	JFrame frame = new JFrame();
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setSize(300,300);
	frame.setVisible(true);
}
}
```


```
class MeinZeichenPanel  extends JPanel {	
	
	public void paintComponent(Graphics g) 
{g.setColor(Color.orange); g.fillRect(20, 30, 100, 100);}	
										
			               }
```

Das Buch, mit dem ich arbeite, gab mir die beiden Codes vor, allerdings habe ich keine Informationen gefunden, wie ich die beiden verknüpfen kann. Ich habe schon so einiges ausprobiert, aber mir gelingt es nicht diese paintComponent-Methode in den Gesamt-Code zu integrieren. 

Wie gehe ich denn jetzt vor, um endlich dieses orangene Quadrat zu Gesicht zu bekommen?


----------



## Flown (10. Aug 2014)

Du musst deinem Frame das JPanel noch hinzufügen.


```
frame.add(new MeinZeichenPanel());
```


----------



## I.E. (10. Aug 2014)

Flown, Ihre Heldenhaftigkeit und Edelmut kennt keine Grenzen. Ich bin jetzt ein stolzer Besitzer eines orangenen Quadrates, und Sie dürfen sich nun wohlverdient in dem Glanz Ihres Ruhmes rekeln. Sei es Ihnen gegönnt!


----------



## I.E. (10. Aug 2014)

Nächste Frage - warum klappt es jetzt nicht mit diesem Code? 
Laut dem Buch sollte es ein JPG in einem Frame erscheinen lassen, tut es aber nicht. 



```
Image image = new ImageIcon("irgendwas.jpg").getImage();
g.drawImage(image,3,4,this);
```

Diesen Code füge ich in die paintComponent-Methode ein - und erhalte einen leeren Frame. 
Was tun? Ich habe immer irgendein Bild aus meiner Bilder-Sammlung auf der Festplatte angegeben. Muss die JPG in irgendeinem bestimmten Ordner untergebraucht sein?


----------



## Flown (11. Aug 2014)

Bekommst du eine Fehlermeldung auf der Konsole?

Poste mal deinen ganzen Code von hier aus kann man nichts erkennen.


----------



## Fab1 (11. Aug 2014)

Pfade sind in Java immer sehr problematisch. Wenn du nur den Dateinamen übergibst, dann muss die .jpg auch in dem gleichen Ordner wie die .JAVA bzw. .Class Dateien liegen. Alternativ kannst du zum testen auch einen absoluten Pfad angeben.

Wäre so die erste Vermutung


----------



## lord239123 (11. Aug 2014)

Welches Buch verwendest du denn?


----------



## I.E. (12. Aug 2014)

Hallo, danke für die Antworten. 

Ich arbeite mit dem Buch "Java von Kopf bis Fuß". Weiß auch gar nicht, wie ich es beurteilen soll. Sagen wir mal so, es hat in meinen Augen schon sehr viele Pluspunkte, aber nicht nur die. 

Der Gesamtcode ist eigentlich bereits im Eröffnungspost vorgestellt, nur dass die paintComponent-Methode jetzt einen anderen Inhalt hat - nämlich den JPEG-Code. Ich versuche es demnächst mit einem kompletten Pfad, oder bringe das Bild irgendwo im Java-Ordner unter, am besten direkt bei den entsprechenden Klassen.


----------



## strußi (12. Aug 2014)

ich habe meine images immer so eingebunden

Icon iHome =new ImageIcon( "icon\\home.gif");

dabei ist icon der Ordner in dem das bild liegt.
Es ist wichtig, dass du Groß-/Kleinscheibung beachtest. kann es daran liegen?


----------



## lord239123 (12. Aug 2014)

Das Buch habe ich anfangs auch verwendet, bin dann allerdings auf die Insel umgestiegen.
Leider ist das Buch inzwischen etwas veraltet, da es noch mit Java 5 arbeitet.

Mit den Pfaden hatte ich vermutlich deshalb anfangs auch meine Probleme.


----------



## Fab1 (12. Aug 2014)

lord239123 hat gesagt.:


> Das Buch habe ich anfangs auch verwendet, bin dann allerdings auf die Insel umgestiegen.
> Leider ist das Buch inzwischen etwas veraltet, da es noch mit Java 5 arbeitet.
> 
> Mit den Pfaden hatte ich vermutlich deshalb anfangs auch meine Probleme.



Deine Meinung kann ich nicht teilen. Natürlich wird "nur" Java 5 verwendet, dies reicht aber absolut aus um sich in alle für den Anfang wichtigen Konzepte einzuarbeiten. Habe das Buch selbst Zuhause und möchte es nicht missen.


----------



## lord239123 (12. Aug 2014)

Das Buch ist nicht schlecht, das wollte ich damot auch nicht sagen.
Es ist gut geschrieben, allerdings macht es doch einjges aus, wenn die gesamten Features aus Java 6, 7 und 8 fehlen.
Zum Beispiel gab es in Java 5 noch kein switch mit Strings.

Auch kommt dazu, dass in 600 Seitrn nicht so viele Infos sein können wie auf 2700 Seiten.

Für einen Anfänger ist das Buch auch heute nicht schlecht, aber wenn man sich ernsthaft für das Thema interessiert, kann ich euch nur empfehlen, die Insel dazu zu kaufen.
Wenn ihr damit djrch seid wisst ihr alles um auch gute Software und Spiele entwickeln zu können.
Auch als Nachschlagewerk kann die Insel gut verwendet werden.


----------

