Panel mit Bild wird nicht angzeigt

Status
Nicht offen für weitere Antworten.

baenker

Mitglied
Hallo,
ich habe folgenden Code:
Code:
 	//Konstruktor mit Parametern
 	public SwingFenster(String titelleiste)
 	{
 		super (titelleiste);
 		
 		fenster = this;
 		
 		Container cPane = new Container();
 		this.getContentPane().setLayout(new BorderLayout());
 		
  		try
 		{
 			UIManager.setLookAndFeel(lafName3);
 		}
 		catch(Exception exp)
 		{
 			System.out.println("Fehler beim Darstellen von Look&Feel" + exp.getMessage());
 		}
 		
 		this.setJMenuBar(new MenuLeiste());
 		
 		tabbedPane = new JTabbedPane();
 		
 		for(int i = 0; i < Daten.getInstance().getListeNamen().length; i++)
 		{
			pnlMain[i] = erstellePnlMain(i);        
			tabbedPane.addTab(((JListData)Daten.getInstance().getListeNamen()[i].getModel()).getTitel(), icon, pnlMain[i]);
		}		
 		 			
 		JPanel pnlGrafik = new JPanel();
 		
 		BorderLayout border = new BorderLayout();
 		pnlGrafik.setLayout(border);
 		
 		ImageIcon icon1 = new ImageIcon("reihen.gif");
 		pnlGrafik.add(icon1);
 		
 		cPane.add("Center", tabbedPane);
 		cPane.add("East", pnlGrafik);
 		cPane.add("West", pnlGrafik);
 		
 	}//end of Konstruktor

Der Fehler ist in Zeile 36. Das Bild soll aufs Panel(pnlGrafik) und dieses Panel auf die ContentPane(West und Süd-Ausrichtung). Die TabbedPane soll zentral (Center).
Für Hilfe bin ich dankbar.
 

baenker

Mitglied
Soooooo....funzt es nicht...

Code:
 		JPanel pnlGrafik = new JPanel();
 		 		
 		BorderLayout border = new BorderLayout();
 		pnlGrafik.setLayout(border);
 		
 		ImageIcon icon1 = new ImageIcon("reihen.gif");
 		JLabel lbGrafik = new Label(icon1);
 		pnlGrafik.add(lbGrafik);
 		
 		cPane.add("Center", tabbedPane);
 		cPane.add("East", pnlGrafik);
 		cPane.add("West", pnlGrafik);
 		
 	}//end of Konstruktor

Oder mache ich einen typischen Anfängerfehler?
 

Zilchinger

Mitglied
Hi,
du kannst in das JPanel noch ein JLabel reinlegen.
JLabel hat die Methode setIcon(Icon ico).
Dort legst du dein ImageIcon rein, dann sollte es gehen.
 

baenker

Mitglied
Deinen Angaben zu Folge müßte der Code so aussehen:
Code:
 		JPanel pnlGrafik = new JPanel();
 		 		
 		BorderLayout border = new BorderLayout();
 		pnlGrafik.setLayout(border);
 		
 		ImageIcon icon1 = new ImageIcon("reihen.gif");
 		pnlGrafik.setIcon(Icon icon1);
 		
 		cPane.add("Center", tabbedPane);
 		cPane.add("East", pnlGrafik);
 		cPane.add("West", pnlGrafik);
 		
 	}//end of Konstruktor

Klappt aber nicht, vielleicht postest du den deiner Meinung nach "richtigen" Code.
Es erschein die Fehlermeldung " ')' expected". Woll soll den die Klammer fehlen?
 

Wildcard

Top Contributor
Einfach nur so:
btw: mach statt
Code:
cPane.add("Center", tabbedPane);
Code:
frame.add(label, BorderLayout.CENTER);
Code:
JFrame frame = new JFrame();
frame.setSize(300,300);
JLabel label = new JLabel(new ImageIcon("file"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(label, BorderLayout.CENTER);
frame.setVisible(true);
 

Zilchinger

Mitglied
Hi,
ich hatte in die Klammern noch den Typ Icon davor gesetzt, damit du weißt von welcher Klasse das Icon sein soll, so wie Wildcard es beschrieben hat, geht es auf jeden Fall.

Wenn nicht, schauen wir nochmal :)
 

baenker

Mitglied
Zilchinger hat gesagt.:
Hi,
ich hatte in die Klammern noch den Typ Icon davor gesetzt, damit du weißt von welcher Klasse das Icon sein soll, so wie Wildcard es beschrieben hat, geht es auf jeden Fall.

Wenn nicht, schauen wir nochmal :)

Ich hab doch den Typ Icon in die Klammer vor den Dateinamen gesetzt! Trotzdem gehts nicht... aber ich probier mal die Variante von Wildcard.
 

baenker

Mitglied
Frage zum Code von Wildcard:

1. Muss ich der ContentPane (cPane) nicht noch das BorderLayout zuweisen?
2. Frame soll "Center", dann ist es doch auf der TabbedPane, soll doch links und rechts daneben?!
3. Frame und cPane, muss ich das nicht noch irgendwie aufeinander legen?
 

Wildcard

Top Contributor
1. BorderLayout ist default. Ist aber schöner wenn man's nochmal explizit dazuschreibt...
2. Kannst du ja machen wie du willst, ist ja nur ein Beispiel :wink:
3. bei Java 5 ist der Umweg über die ContentPane nicht erforderlich. Wenn du noch eine alte Java-Version benutzt muss das so aussehen:
Code:
frame.getContentPane().add(label, BorderLayout.CENTER);
 

baenker

Mitglied
Compilieren geht, doch beim Ausführen erscheint folgende FM:

Exception in thread „main“ java.lang.Error: Do not use javax.swing.JFrame.add()
use javax.swing.JFrame.getContentPane().add() instead
at javax.swing.JFrame.createRootPaneException(JFrame.java:465)
at javax.swing.JFrame.addImpl(JFrame.java:491)
at java.awt.Container.add(Container.java:518)
at SwingFenster.(init)(Namensliste.java:121)
at SwingFenster.(init)(Namensliste.java:82)

Press any key…
 

Wildcard

Top Contributor
Wildcard hat gesagt.:
3. bei Java 5 ist der Umweg über die ContentPane nicht erforderlich. Wenn du noch eine alte Java-Version benutzt muss das so aussehen:

Code:
frame.getContentPane().add(label, BorderLayout.CENTER);
 

baenker

Mitglied
Habe folgenden Code eingegeben:
Code:
 	//Konstruktor mit Parametern
 	public SwingFenster(String titelleiste)
 	{
 		super (titelleiste);
 		
 		fenster = this;
 		
 		Container cPane = this.getContentPane();
 		
  		try
 		{
 			UIManager.setLookAndFeel(lafName3);
 		}
 		catch(Exception exp)
 		{
 			System.out.println("Fehler beim Darstellen von Look&Feel" + exp.getMessage());
 		}
 		
 		this.setJMenuBar(new MenuLeiste());
 		
 		tabbedPane = new JTabbedPane();
 		
 		for(int i = 0; i < Daten.getInstance().getListeNamen().length; i++)
 		{
			pnlMain[i] = erstellePnlMain(i);        
			tabbedPane.addTab(((JListData)Daten.getInstance().getListeNamen()[i].getModel()).getTitel(), icon, pnlMain[i]);
		}		
 		 			
 		cPane.add("Center", tabbedPane);

		frame.add(label, BorderLayout.CENTER);

		JFrame frame = new JFrame(); 
		frame.setSize(300,300); 
		JLabel label = new JLabel(new ImageIcon("file")); 
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		frame.add(label, BorderLayout.CENTER); 
		frame.setVisible(true);

		frame.getContentPane().add(label, BorderLayout.CENTER);
 		
 	}//end of Konstruktor

>>cannot resolve symbol variable
>>cannot resolve symbol label
 

Wildcard

Top Contributor
Code:
    //diese Zeile entfernen
      frame.add(label, BorderLayout.CENTER); 

      JFrame frame = new JFrame(); 
      frame.setSize(300,300); 
      JLabel label = new JLabel(new ImageIcon("file")); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.add(label, BorderLayout.CENTER);
 

baenker

Mitglied
Sorry, damit du mich wirklich nicht für dumm hälst...

Code:
 	//Konstruktor mit Parametern
 	public SwingFenster(String titelleiste)
 	{
 		super (titelleiste);
 		
 		fenster = this;
 		
 		Container cPane = this.getContentPane();
 		
  		try
 		{
 			UIManager.setLookAndFeel(lafName3);
 		}
 		catch(Exception exp)
 		{
 			System.out.println("Fehler beim Darstellen von Look&Feel" + exp.getMessage());
 		}
 		
 		this.setJMenuBar(new MenuLeiste());
 		
 		tabbedPane = new JTabbedPane();
 		
 		for(int i = 0; i < Daten.getInstance().getListeNamen().length; i++)
 		{
			pnlMain[i] = erstellePnlMain(i);        
			tabbedPane.addTab(((JListData)Daten.getInstance().getListeNamen()[i].getModel()).getTitel(), icon, pnlMain[i]);
		}		
 		 			
 		cPane.add("Center", tabbedPane);

		JFrame frame = new JFrame(); 
		frame.setSize(300,300); 
		JLabel label = new JLabel(new ImageIcon("file")); 
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		frame.add(label, BorderLayout.CENTER); 
		frame.setVisible(true);

		frame.getContentPane().add(label, BorderLayout.CENTER);
 		
 	}//end of Konstruktor

>>> Process completed
>>> Ausführungsfenster mehrere Fehler, wie oben schon beschrieben...

und nun? Jemand noch ne (andere) Idee? Vielleicht kann man die ersten Lösungsvorschläge nochmal ausbauen???
 

Wildcard

Top Contributor
der andere Fehler war das:
cannot resolve symbol variable
in dem Code den du gepostet hast kommt aber 'variable' gar nicht vor, also kann ich dir schlecht sagen wo
dein Fehler ist. Auserdem hab ich den Verdacht das du eine von JFrame abgleitete Klasse benutzt.
Dann musst du mein Beispiel dahingehend anpassen das du natürlich keinen neuen Frame mehr erzeugen musst.
Du willst ja schließlich nicht 2 Fenster...
 

baenker

Mitglied
Also, ich seh da echt nicht mehr durch!
Nochmal, up-to-date, mein Code in der Ursprungsform:
Code:
 	public SwingFenster(String titelleiste)
 	{
 		super (titelleiste);
 		
 		fenster = this;
 		
 		Container cPane = this.getContentPane();
 		
  		try
 		{
 			UIManager.setLookAndFeel(lafName3);
 		}
 		catch(Exception exp)
 		{
 			System.out.println("Fehler beim Darstellen von Look&Feel" + exp.getMessage());
 		}
 		
 		this.setJMenuBar(new MenuLeiste());
 		
 		tabbedPane = new JTabbedPane();
 		
 		for(int i = 0; i < Daten.getInstance().getListeNamen().length; i++)
 		{
			pnlMain[i] = erstellePnlMain(i);        
			tabbedPane.addTab(((JListData)Daten.getInstance().getListeNamen()[i].getModel()).getTitel(), icon, pnlMain[i]);
		}		
 		 			
 		cPane.add(tabbedPane);

Dieser Code zeigt mir ein Fenster mit einer TabbedPane (zentriert) an. Ich habe noch ein Icon, welches ich in einem extra Panel (wenn nötig) links und rechts von der TabbedPane unterbringen möchte.
Optisch soll also in der Mitte die JList angezeigt werden und rechts und links davon als "Verschönerung" ein Bild.

Kann mir hier jemand einen, für meine Zwecke, funktionierenden Code posten?
Tausend Dank für die Unterstützung.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
G Bild in Panel oder canvas einfügen Java Basics - Anfänger-Themen 3
C Grafik in einem Panel als Bild exportieren Java Basics - Anfänger-Themen 8
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
P Herausfinden, auf welchem Panel des CardLayouts man gerade ist? Java Basics - Anfänger-Themen 12
CptK Interface 2 von einander unabhängige Frames mit Panel gleichzeitig nutzen Java Basics - Anfänger-Themen 66
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
L Panel verkleinert sich unerklärlicherweise Java Basics - Anfänger-Themen 7
N Mehrere Forms auf einem Panel Java Basics - Anfänger-Themen 6
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
J Panel auf Hintergrund Java Basics - Anfänger-Themen 5
J Panel und Menü Java Basics - Anfänger-Themen 6
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
D Hintergrund jpg auf Panel Java Basics - Anfänger-Themen 3
A Frage zu einer Methode - Panel arbeitet nicht ordnungsgemäß Java Basics - Anfänger-Themen 2
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
S Image in Panel laden Java Basics - Anfänger-Themen 12
D Panel von unten herausfahren Java Basics - Anfänger-Themen 2
S mehrere Rechtecke in ein Panel Java Basics - Anfänger-Themen 2
L panel verschmiert beim draggen! Java Basics - Anfänger-Themen 2
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
S Swing, Panel über Hintergrundbild!! Java Basics - Anfänger-Themen 6
C Panel und Label überdecken sich Java Basics - Anfänger-Themen 2
J JLabels in Panel Aktualisieren Java Basics - Anfänger-Themen 5
H Panel in Variable setzen möglich? Java Basics - Anfänger-Themen 10
M Spezielles Panel fade in / out Java Basics - Anfänger-Themen 5
C Panel Hintergrundfarbe per AdjustmenListenmer ändern Java Basics - Anfänger-Themen 4
D GUI: Panel in Panel laden Java Basics - Anfänger-Themen 10
R Eingefärbtes Panel wird in Frame nicht angezeigt Java Basics - Anfänger-Themen 10
eLogic Panel hinzufügen Java Basics - Anfänger-Themen 4
Nic.o Panel während Ladevorgang einblenden Java Basics - Anfänger-Themen 12
B PacMan: Panel aktualisieren Java Basics - Anfänger-Themen 2
D Eingabe aus Dialog, Ergebnis an Panel Java Basics - Anfänger-Themen 2
Z JFileChooser/ Panel + Menüproblem Java Basics - Anfänger-Themen 3
J GridLayout auf Panel zentrieren? Java Basics - Anfänger-Themen 2
G Aus eigenem Panel dieses Löschen Java Basics - Anfänger-Themen 2
J Panel-übergreifende Kommunikation Java Basics - Anfänger-Themen 3
M Panel ersetzen funktioniert nicht Java Basics - Anfänger-Themen 2
M BorderLayout zickt! Ein Panel versteckt das andere! Java Basics - Anfänger-Themen 6
K Panel fixieren und nicht zentrieren Java Basics - Anfänger-Themen 2
F Zeichnen auf einem Panel Java Basics - Anfänger-Themen 2
N Panel entfernen Java Basics - Anfänger-Themen 2
B Zugriff auf JTextPane in einem anderen Panel Java Basics - Anfänger-Themen 2
H TabbedPane: wie schalte ich auf ein bestimmtes panel? Java Basics - Anfänger-Themen 2
kulturfenster Panel in Frame integrieren Java Basics - Anfänger-Themen 5
H Paint Methode malt nicht im Panel Java Basics - Anfänger-Themen 4
J Probleme mit Visual Editor Komponenten auf Panel legen Java Basics - Anfänger-Themen 4
M Panel ausgrauen (disable) Java Basics - Anfänger-Themen 2
K Component vom einem Panel löschen ? Java Basics - Anfänger-Themen 14
C Panel wird nicht übermalt Java Basics - Anfänger-Themen 6
P Swing Textarae so groß wie Panel? Java Basics - Anfänger-Themen 2
G Rekursives aufrufen führt zu StackOverflowError Panel durchl Java Basics - Anfänger-Themen 5
T JMenuItems werden von Komponente in Panel verdeckt Java Basics - Anfänger-Themen 11
G Auf ein Panel malen Java Basics - Anfänger-Themen 16
D Event mit n-Button8s) von einem Panel Java Basics - Anfänger-Themen 9
Z Wie übergebe ich einer MyFrame-Klasse ein Panel? Java Basics - Anfänger-Themen 8
A g=panel.getGraphics() im Thread => Nullpointer Java Basics - Anfänger-Themen 9
S Bilder bleiben auf einem Panel nicht gezeichnet Java Basics - Anfänger-Themen 6
L Java Control Panel Java Basics - Anfänger-Themen 5
A Swing Schriftfarbe für komplettes Panel ändern Java Basics - Anfänger-Themen 2
G Panel Java Basics - Anfänger-Themen 4
B Kann man mit XMl ein Panel erstelln Java Basics - Anfänger-Themen 2
R Einfügen einer eigenen methode in ein Panel Java Basics - Anfänger-Themen 5
E Komponenten auf Panel positionieren Java Basics - Anfänger-Themen 3
G aus Thread auf Panel zeichnen Java Basics - Anfänger-Themen 22
G Text in Panel anordnen Java Basics - Anfänger-Themen 6
M Ein Panel in ein Panel laden Java Basics - Anfänger-Themen 3
S Graphic im Panel änder durch JSlider Java Basics - Anfänger-Themen 2
P Ball auf Panel hüpfen lassen Java Basics - Anfänger-Themen 4
T Panel entfernen Java Basics - Anfänger-Themen 4
T Panel entfernen, neues hinzufügen Java Basics - Anfänger-Themen 2
A Probleme mit Panel und GUI Java Basics - Anfänger-Themen 4
D Warum färbt er das unter Panel nicht ein? Java Basics - Anfänger-Themen 3
V Panel durchsichtig machen Java Basics - Anfänger-Themen 4
D Desktop auf nem Panel Java Basics - Anfänger-Themen 6
B Panel bei Mausklick färben Java Basics - Anfänger-Themen 3
S Keyevent in Panel Java Basics - Anfänger-Themen 5
C Add / Remove Panel Java Basics - Anfänger-Themen 2
C zweites Panel auf Knopfdruck anzeigen Java Basics - Anfänger-Themen 2
O größe von panel mit gridlayout Java Basics - Anfänger-Themen 9
G Panel in Methode erneut aufrufen Java Basics - Anfänger-Themen 5
B Panel mit Radiobuttons als eigene Klasse Java Basics - Anfänger-Themen 4
G aktueller Panel, der in BorderLayout.SOUTH angeordnet ist Java Basics - Anfänger-Themen 11
A Panel und getContentPane() ? Java Basics - Anfänger-Themen 2
S panel leeren Java Basics - Anfänger-Themen 2
S Panel / setbounds Java Basics - Anfänger-Themen 3
R Image lässt sich nicht in ein Panel einfügen Java Basics - Anfänger-Themen 3
G Paint auf Panel Java Basics - Anfänger-Themen 4
G JPG in einem Panel anzeigen lassen Java Basics - Anfänger-Themen 3
A Panel überschreiben Java Basics - Anfänger-Themen 4
X GUI: neues Panel in einer Applikation anzeigen lassen Java Basics - Anfänger-Themen 2
G Panel in Container einfügen Java Basics - Anfänger-Themen 7
N need help in panel Java Basics - Anfänger-Themen 8
M Inhalt Panel,Frame löschen Java Basics - Anfänger-Themen 8
S Image von einem Panel erzeugen! Java Basics - Anfänger-Themen 2
A Komponenten im Panel ausrichten Java Basics - Anfänger-Themen 5
G Panel zur Laufzeit laden/entladen Java Basics - Anfänger-Themen 2
S Neues Fenster/Panel nach Knopfdruck Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben