Grafik und Text in JPanel anzeigen

Kenan89

Bekanntes Mitglied
Hallo, ich programmiere zur Zeit zum Üben eine GUI.

Ich habe ein Klasse, die von JFrame erbt. In diese werden alle Panels hineingespeichert. Die einzelnen Panels sind wiederrum einzelne Klassen. Jetzt habe ich einen Panel namens Header und habe ihm einen Text hinzugefügt(der Panel besitzt das BorderLayout). Ich will noch mit BorderLayout.EAST ein Bild hinzufügen. Der Code:

Java:
add(new JLabel("Texttexttext"), BorderLayout.WEST);

Bild bild = new Bild();
bild.holeBild("xy.png");
add(bild, BorderLayout.EAST);

Die Klasse, mit der das Bild gezeichnet wird heisst Bild:

Java:
public paintComponent(Graphics g){

Image bild_;

Graphics2D g2D = (Graphics2D) g;
g.drawImage(bild_,0,0,this);

}

public void holeBild(String bildname){
bild_ =Toolkit.getDefaultToolkit().getImage(bildname);
repaint();
}

Er zeigt mir in meinem Frame nur den Text an und nicht das Bild. Was habe ich falsch gemacht?
 

KrokoDiehl

Top Contributor
Ich würde sagen dass das Bild, was du lädst nicht gefunden wird. Stimmt der Pfad? Prüf doch mal ob es NULL ist. Laut API macht
Code:
drawImage()
dann nämlich nichts.
 

Kenan89

Bekanntes Mitglied
Das Bild müsste eigentlich gefunden werden. Ich habe es schon einmal nach diesem Muster hingekriegt, ein Bild anzeigen zu lassen. Der einzige unterschied ist jetzt, dass ich mit LayoutManagern arbeite. Davor habe ich alles mit setBounds gelöst.

Ich denke das Problem liegt eher bei der Platzierung(drawImage(bild_,0,0,this));
Ich habe testweise um den draw-Image einmal try und catch geschrieben und einmal habe ich prüfen lassen, ob die variable Image bild_ null ist. Es wird schon geladen aber irgendwie nicht platziert.
 

KrokoDiehl

Top Contributor
Ah guter Hinweis, daran habe ich nicht gedacht. Was ist denn die Klasse Bild für eine Komponente? Ein JPanel? Die LayoutManager richten sich quasi alle nach der preferredSize und die ist bei deiner Bild-Komponente wohl zu klein bzw. 0. Nach dem Laden des Bildes solltest du also mal die preferredSize der Bild-Klasse auf die Größe des Bildes setzen.
 

Kenan89

Bekanntes Mitglied
Ah guter Hinweis, daran habe ich nicht gedacht. Was ist denn die Klasse Bild für eine Komponente? Ein JPanel? Die LayoutManager richten sich quasi alle nach der preferredSize und die ist bei deiner Bild-Komponente wohl zu klein bzw. 0. Nach dem Laden des Bildes solltest du also mal die preferredSize der Bild-Klasse auf die Größe des Bildes setzen.

Ich habe die preferredSize so groß gemacht, wie das Bild pixel hat.
Die Klasse Bild erbt von JComponent. Wie gesagt ich habe genau nach diesem Muster schon Bilder eingefügt.
 

L-ectron-X

Gesperrter Benutzer
Möglicherweise ist das Problem bei der Benutzung von Toolkit ohne MediaTracker zu suchen.
Größere Bilder benötigen etwas mehr Ladezeit. Während dessen wird die paint() bzw. die paintComponent()-Methode aber schon mal ausgeführt, was dazu führt, dass nicht zu sehen ist.

Probiere mal, die Bilder statt mit dem veralteten Toolkit mit ImageIO zu laden.
Auch mal diesen Wiki-Beitrag lesen: Grafikdateien laden und anzeigen ? Byte-Welt Wiki

[EDIT]Innerhalb der paintComponent()-Methode deklarierst du außerdem eine zur Instanzvariable
Code:
bild_
gleichnamige lokale Variable, weist ihr aber keinen Wert zu, was dazu führt, dass dein
Code:
bild_
null sein dürfte.[/EDIT]
 

Kenan89

Bekanntes Mitglied
Das Bild welches ich einsetzen möchte ist ca 58 KiloByte. Also nicht besonders groß.:)

Es ist im Endeffekt sowieso wichtgig, Graphics2D zu beherrschein, deswegen würde ich es lieber nicht mit der imageIO methode machen.
 

L-ectron-X

Gesperrter Benutzer
Tjo, ich habe dir gesagt/gezeigt, wie man es machen kann und nach heutigen Maßstäben auch machen sollte.
Mehr kann ich da jetzt nicht machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
I 2D-Grafik Problem mit schreiben von Text auf eine Grafik AWT, Swing, JavaFX & SWT 7
I Grafik in Text umwandeln AWT, Swing, JavaFX & SWT 11
I Libraries für AWT für andere Grafik-Frameworks tauglich machen AWT, Swing, JavaFX & SWT 6
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
M Umwandlung in den HSV-Farbraum lässt die Grafik pixelig werden AWT, Swing, JavaFX & SWT 8
S 2D-Grafik Winkelberechnungen auf 2D Grafik AWT, Swing, JavaFX & SWT 2
E Grafik karte erkennen AWT, Swing, JavaFX & SWT 3
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
D Swing JCombobox Aktion löscht Grafik AWT, Swing, JavaFX & SWT 1
K Grafik in JFrame einpassen AWT, Swing, JavaFX & SWT 3
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
S Höhendaten in einer Grafik ausgeben AWT, Swing, JavaFX & SWT 2
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
C 2D Grafik ein Bild soll permanent durchlaufen AWT, Swing, JavaFX & SWT 2
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
F AWT Grafik wird nicht richtig aktualisiert AWT, Swing, JavaFX & SWT 2
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
F Grafik hängt sich auf AWT, Swing, JavaFX & SWT 20
S LookAndFeel GUI-Grafik AWT, Swing, JavaFX & SWT 5
J Verschwommene Grafik AWT, Swing, JavaFX & SWT 4
C LayoutManager Grafik soll nicht im GridLayout Skalieren AWT, Swing, JavaFX & SWT 3
F Grafik mit Buttons versehen AWT, Swing, JavaFX & SWT 8
C Grafik Taschenrechner AWT, Swing, JavaFX & SWT 5
J Grafik (Kreis) schneller bewegen? AWT, Swing, JavaFX & SWT 6
D Fenster mit Grafik überlappen AWT, Swing, JavaFX & SWT 3
Maxim6394 Rotation einer Grafik in swing AWT, Swing, JavaFX & SWT 13
D Swing Grafik in JPanel anzeigen. AWT, Swing, JavaFX & SWT 3
W Grafik von JFrame korrekt speichern AWT, Swing, JavaFX & SWT 7
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Swing JLabel (mit einer Grafik) aktualisieren AWT, Swing, JavaFX & SWT 2
D 2D-Grafik Problem beim Drucken eines Grafik-Objekts AWT, Swing, JavaFX & SWT 2
Daniel_L Grafik erstellen, drin zeichnen und dann speichern AWT, Swing, JavaFX & SWT 2
D Grafik über JPanels hinweg verschieben AWT, Swing, JavaFX & SWT 2
C Grafik von main aus aufrufen AWT, Swing, JavaFX & SWT 13
O Swing Label(bzw. Grafik) verdekt von anderm Label AWT, Swing, JavaFX & SWT 2
T rekursive Grafik AWT, Swing, JavaFX & SWT 5
F Swing Framework gesucht (Swing, Chart, "Scheduling" Grafik) AWT, Swing, JavaFX & SWT 2
S Pacman-Grafik AWT, Swing, JavaFX & SWT 23
N Eigener Grafik Editor mit fehlerhafter Anzeige AWT, Swing, JavaFX & SWT 4
lordcarlos Dynamische und interaktive grafik AWT, Swing, JavaFX & SWT 5
D Systemmodale Grafik AWT, Swing, JavaFX & SWT 10
J Geladene Grafik in ImageIcon auf Panel fest positionern. AWT, Swing, JavaFX & SWT 8
W Grafik aktualisieren AWT, Swing, JavaFX & SWT 5
S Swing Zugriff auf Polyline in Grafik AWT, Swing, JavaFX & SWT 4
A Swing Bei größe verändern des Fensters Grafik weg AWT, Swing, JavaFX & SWT 3
C gute Grafik-Bibliotheken gesucht AWT, Swing, JavaFX & SWT 6
D JFormattedTextfield um Grafik erweitern AWT, Swing, JavaFX & SWT 15
O Grafik wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
P JPanel mit Grafik von HDD über JTree AWT, Swing, JavaFX & SWT 10
S 2D-Grafik beeinflussen durch Scrollbalken AWT, Swing, JavaFX & SWT 2
A Grafik aus MIME-kodiertem Inhalt erzeugen AWT, Swing, JavaFX & SWT 2
T (WACOM) Grafik Tablet abfragen AWT, Swing, JavaFX & SWT 3
S Button mit Grafik versehen AWT, Swing, JavaFX & SWT 5
D Grafik bearbeiten AWT, Swing, JavaFX & SWT 11
M Ich habe Werte und Brauche Grafik! AWT, Swing, JavaFX & SWT 3
M Grafik flexibel an berechneten Koordinaten positionieren AWT, Swing, JavaFX & SWT 4
M dynamische Grafik in JFrame einbetten AWT, Swing, JavaFX & SWT 2
G Transparente Grafik über JMF Video zeichnen AWT, Swing, JavaFX & SWT 2
G Grafik auf mehrere Methoden/Klassen zerlegen AWT, Swing, JavaFX & SWT 2
G Grafik in Button einbinden AWT, Swing, JavaFX & SWT 3
M Grafik in JFrame in Kombination mit Steuerelementen AWT, Swing, JavaFX & SWT 2
T grafik in jpanel wird nicht neugezeichnet AWT, Swing, JavaFX & SWT 7
F Zellen über eine Grafik legen AWT, Swing, JavaFX & SWT 7
S Grafik Farbwert verändern? AWT, Swing, JavaFX & SWT 8
D Farbe einer Grafik über den Cursor abfragen AWT, Swing, JavaFX & SWT 6
G Keine Anzeige von Grafik bei externem paintComponent-Aufruf AWT, Swing, JavaFX & SWT 2
S Popup auf Grafik AWT, Swing, JavaFX & SWT 18
J Grafik "sichtbar" verschieben AWT, Swing, JavaFX & SWT 2
G Grafik auf JComponent ohne Überschreiben von Paint-Methoden AWT, Swing, JavaFX & SWT 4
G Grafik erzeugen: eine Art Zustandsgraph eines Automaten AWT, Swing, JavaFX & SWT 7
P grafik in JScrollPanel AWT, Swing, JavaFX & SWT 5
D AppletCode als JAR aus JSP benutzen und als Grafik speichern AWT, Swing, JavaFX & SWT 2
S Update von Grafik auf JPanel AWT, Swing, JavaFX & SWT 2
S Auf einem JTabbedPane eine Grafik zeichnen AWT, Swing, JavaFX & SWT 11
W Grafik in JLabel aktualisieren AWT, Swing, JavaFX & SWT 4
S Tooltip mit Grafik AWT, Swing, JavaFX & SWT 2
D Visualisierung einer Selektion in einer Grafik. AWT, Swing, JavaFX & SWT 7
P Vektor-Grafik im XML-Format speichern AWT, Swing, JavaFX & SWT 39
P Grafik auf Button AWT, Swing, JavaFX & SWT 3
E Einträge der JComboBox werden durch Grafik verdeckt AWT, Swing, JavaFX & SWT 11
L Komponente und Grafik gleichzeitig auf JPanel zeichnen AWT, Swing, JavaFX & SWT 11
T swing - grafik schrittweise ausgeben ohne repaint() AWT, Swing, JavaFX & SWT 2
Juelin Text und Backgroundcolor im Label geht nicht AWT, Swing, JavaFX & SWT 7
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
FrittenFritze Text in Flying Saucer selectierbar machen AWT, Swing, JavaFX & SWT 0
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben