JPanel in eine GUI einbinden

I.E.

Mitglied
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.

Java:
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);
}
}

Java:
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

Administrator
Mitarbeiter
Du musst deinem Frame das JPanel noch hinzufügen.

Java:
frame.add(new MeinZeichenPanel());
 

I.E.

Mitglied
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.

Mitglied
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.


Java:
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

Administrator
Mitarbeiter
Bekommst du eine Fehlermeldung auf der Konsole?

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

Fab1

Top Contributor
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 :)
 
Zuletzt bearbeitet:

I.E.

Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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

Top Contributor
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

Bekanntes Mitglied
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.
 

Neue Themen


Oben