Meine JLabels werden nicht angezeigt

Network

Top Contributor
Hallo,

die Überschrift sagt es ja bereits, meine JLabels werden nicht angezeigt.

Mein JLayeredPane enthält 3 JPanels auf jeweils 3 verschiedenen Ebenen. Auf diesen JPanels befinden sich JLabels mit Bildern, und genau diese kann ich nicht sehen!

D.h. weder die Bilder noch wenn ich die JLabels mit "JLabel.setBackground( Color.black )" anmale.

Es bleibt diese Standardfarbe grau-weiss...
Mein Code:
Java:
public class MainFrame extends JFrame {

	private static final long serialVersionUID = 1L;
	
	//Look
	private JPanel jp;
	private 	JScrollPane jspMap;
	private 		JLayeredPane jlpMap;
	private 			JPanel jpBackground;
	private 			JPanel jpPlayground;
	private 			JPanel jpForeground;
	
	//Data
	IOManager io;
	public static final String sFor = "Terrain/Texturen/01.png";
	public static final String sBack = "Terrain/Texturen/bild02.png";
	public static final String sFog = "Terrain/Texturen/bild03.png";

	public MainFrame() { //extends JFrame
		//Data
		io = new IOManager();
		
		//Look
		jp = new JPanel();
		jp.setLayout( new BorderLayout() );
		this.add( jp );
		
		jspMap = new JScrollPane();
		jp.add( jspMap );
		
		//Create workstation
		Dimension mapsize = new Dimension( w*30, h*30 ); //default: w & h = 100
		
		jlpMap = new JLayeredPane();
		jlpMap.setPreferredSize( mapsize );
		
		jpBackground = new JPanel( null );
		jpBackground.setSize( mapsize );
		jpBackground.setOpaque( true );
		jlpMap.add(jpBackground, new Integer(1));
		
		jpPlayground = new JPanel( null );
		jpPlayground.setSize( mapsize );
		jpPlayground.setOpaque( false );
		jlpMap.add(jpPlayground, new Integer(2));
		
		jpForeground = new JPanel( null );
		jpForeground.setSize( mapsize );
		jpForeground.setOpaque( false );
		jlpMap.add(jpForeground, new Integer(3));
		
		for( int row = 0; row < h; row++ ) {
			for( int column = 0; column < w; column++ ) {
				//Create JLabel
				JLabel jlBG = new JLabel();
				jlBG.setIcon( io.loadImageSafety(MainFrame.sBack, true) ); //load image via ImageIO - automatic exception handler
				jlBG.setBounds( 30*column, 30*row, 30, 30 );
				jlBG.setBackground( Color.black );
				jpBackground.add( jlBG );
 			}
		}
		
		jspMap.getViewport().setView( jlpMap );

		//Finalize
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setTitle("Geo Conflict - Alpha");
		this.setVisible( true );
		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
	}
}

Währe echt toll wenn das jmd. anschaut... Ich habe echt keine Ahnung warum das nicht funktioniert!

Vielen Dank im Vorraus
Gruß
 
Zuletzt bearbeitet:
S

SlaterB

Gast
setBounds() ist abgesehen vom null-Layout ziemlich uninteressant (edit: ok, hast du ja),
Bilder und Hintergrund sind immer schlechte Tests, fange doch mit "Test"-Text an

passiert das ganze vor oder nach setVisible(true) der GUI?

der Rest der GUI mit jspMap usw. kann auch Probleme machen wenn nicht korrekt,
nur vollständige Testprogramme haben eine gute Aussage


edit:
bei mir gehts:
Java:
public class TestGUI   extends JFrame {
    public TestGUI()   {
        int h = 3;
        int w = 3;
        Dimension mapsize = new Dimension(w * 30, h * 30); // default: w & h = 100

        JLayeredPane jlpMap = new JLayeredPane();
        jlpMap.setPreferredSize(mapsize);

        JPanel jpBackground = new JPanel(null);
        jpBackground.setSize(mapsize);
        jpBackground.setOpaque(true);
        jlpMap.add(jpBackground, new Integer(1));

        JPanel jpPlayground = new JPanel(null);
        jpPlayground.setSize(mapsize);
        jpPlayground.setOpaque(false);
        jlpMap.add(jpPlayground, new Integer(2));

        JPanel jpForeground = new JPanel(null);
        jpForeground.setSize(mapsize);
        jpForeground.setOpaque(false);
        jlpMap.add(jpForeground, new Integer(3));

        for (int row = 0; row < h; row++)    {
            for (int column = 0; column < w; column++)      {
                // Create JLabel
                JLabel jlBG = new JLabel("abc");
                jlBG.setBounds(30 * column, 30 * row, 30, 30);
                jlBG.setBackground(Color.black);
                jpBackground.add(jlBG);
            }
        }

        JScrollPane jspMap = new JScrollPane();
        jspMap.getViewport().setView(jlpMap);


        add(jspMap);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 300);
        setVisible(true);
    }

    public static void main(String[] args)  {
        new TestGUI();
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Network

Top Contributor
Ok, danke erstmal. Habe meinen gesammten Code hinzugefügt.

Deinen Code habe ich getestet, Text wird auch angezeigt, aber das setBackground(Color.black) immernoch nicht geschweige denn das Bild.

Das Bild ist vorhanden und beim laden kommt auch keinerlei Exception...
 
S

SlaterB

Gast
jlBG.setOpaque(true);
noch für die Farbe

für die Datei
new File(pfad)
exists(), getAbsolutePath() testen

in jedem Fall nur einmal laden, nicht in der Schleife 10.000x ...
 

Michael...

Top Contributor
Deinen Code habe ich getestet, Text wird auch angezeigt, aber das setBackground(Color.black) immernoch nicht geschweige denn das Bild.
Der Hintergrund eines JLabels ist standardmäßig transparent und muss erst mittels setOpaque(true) sichtbar gemacht werden.
Das Bild ist vorhanden und beim laden kommt auch keinerlei Exception...
Vielleicht liegt's ja daran (beziehe mich auf den Kommentar im Code):
Java:
jlBG.setIcon( io.loadImageSafety(MainFrame.sBack, true) ); //load image via ImageIO - automatic exception handler
 

Network

Top Contributor
@Michael und SlaterB
Ok Danke. Ich habe nie bemerkt, das JLabel standardmäßig nicht sichtbar ist.

=> Mein IOManager (mein Standardrepertoire) regelt automatisch, dass ein Bild nur einmal geladen wird und gibt für alle späteren Fälle nur die Adresse des schonmal geladenen Bildes zurück. (Sowie nimmt er einem die lästigen Exceptions fals gewünscht ab.
=> Der Fehler war tatsächlich genau dort drin -.-' warum weiss ich noch nicht. Irgendwie funktioniert das ganze System nicht, wenn ich als "Key" der HashMap (Adressenspeicher der Bilder), Strings statt Files verwende.

Wie dem auch sei. Vielen Dank, man lernt nie aus :)
 
S

SlaterB

Gast
selbst wenn nur einmal, dann sind die unnötigen Methodenaufrufe, Pfad nachschlagen und der Code an sich einfach unschön,
irgendwo muss er ja stehen, aber dann zumindest nicht in der kritischen Schleife und nicht so verschachtelt ;)

lieber das Bild in einer Variablen und nur
jlBG.setIcon( iconXy );
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Meine JButtons werden nicht angezeigt bitte helft mir AWT, Swing, JavaFX & SWT 2
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
J Meine ProgBar und ProgIndi werden nicht aktualisiert AWT, Swing, JavaFX & SWT 28
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
V Warum wird meine Variable nicht erkannt? AWT, Swing, JavaFX & SWT 2
D Swing JTable- Meine Tabelle der Klasse JTable wird nur bedingt angezeigt AWT, Swing, JavaFX & SWT 4
F Swing Wie verwalte ich meine Panels richtig? AWT, Swing, JavaFX & SWT 2
S Swing Ist meine gute Java Anwendung vorgängig? AWT, Swing, JavaFX & SWT 20
SexyPenny90 Welcher LayoutManager erfüllt meine Bedingung AWT, Swing, JavaFX & SWT 7
hdi Swing Suche passende API Klasse(n) für meine Komponente AWT, Swing, JavaFX & SWT 8
dl85hej meine erste Oberfläche AWT, Swing, JavaFX & SWT 3
A TreeNode abgeleitet -> Wie komme ich an meine Methoden? AWT, Swing, JavaFX & SWT 2
G Hilfe Meine JPanels verschwinden im Müll AWT, Swing, JavaFX & SWT 10
M Meine JComponete will nicht wie ich will AWT, Swing, JavaFX & SWT 2
hdi meine paint-methode macht faxen? AWT, Swing, JavaFX & SWT 21
G kann meine idee nicht verwirklichen, bitte helfen AWT, Swing, JavaFX & SWT 3
R Innerhalb der GUI Klasse meine neue Klasse aufrufen AWT, Swing, JavaFX & SWT 1
G Wieso wird meine Scrollbar nicht angezeigt? AWT, Swing, JavaFX & SWT 3
5 Anfängerfrage: Wie starte ich meine ersten Swing-Programme AWT, Swing, JavaFX & SWT 4
G Warum gehen meine Icons/Images nicht weg? AWT, Swing, JavaFX & SWT 2
G kann nicht auf meine JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
VPChief Icons in 2 Jlabels Director nebeneinander anzeigen AWT, Swing, JavaFX & SWT 26
kilopack15 JLabels im Array erzeugen AWT, Swing, JavaFX & SWT 2
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
B Swing HTML in JLabels AWT, Swing, JavaFX & SWT 6
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
C Swing BufferedImage zeichnen und JLabels setzen. AWT, Swing, JavaFX & SWT 17
J Swing Frage zur Vorgehensweise (JTable?, JLabels?) AWT, Swing, JavaFX & SWT 8
I Jlabels Addieren AWT, Swing, JavaFX & SWT 3
X Swing ListDialog von Oracle mit JLabels AWT, Swing, JavaFX & SWT 2
T Swing Drag and Drop - JLabels tauschen statt überschreiben AWT, Swing, JavaFX & SWT 11
M Position eines JLabels mit getX() auslesen AWT, Swing, JavaFX & SWT 2
M Position eines JLabels speichern? AWT, Swing, JavaFX & SWT 3
S Swing Größe von JLabels verändern sich in einem Panel unterschiedlich AWT, Swing, JavaFX & SWT 6
L Name des JLabels auslesen bei Mouseclick AWT, Swing, JavaFX & SWT 2
C Swing JLabels entfernen und neue einfügen AWT, Swing, JavaFX & SWT 6
S Textfelder JLabels AWT, Swing, JavaFX & SWT 3
J JLabels repainten AWT, Swing, JavaFX & SWT 4
D Swing JLabels in einer Schleife aktualisieren AWT, Swing, JavaFX & SWT 2
Balbes Swing Mehrere JLabels vereinen AWT, Swing, JavaFX & SWT 2
M In Jlist auf Änderungen von mehreren JLabels reagieren AWT, Swing, JavaFX & SWT 3
bugmenot Dynamisch erzeugte jLabels werden nicht angezeigt. AWT, Swing, JavaFX & SWT 5
S Probleme beim Neuzeichnen eines JLabels AWT, Swing, JavaFX & SWT 6
B Problem bei Textänderung eines JLabels AWT, Swing, JavaFX & SWT 5
J JLabels usw. dynamisch anlegen AWT, Swing, JavaFX & SWT 8
B Erneuern der Informationen in der GUI und JTable und JLabels AWT, Swing, JavaFX & SWT 2
B zwei JLabels überlappen lassen AWT, Swing, JavaFX & SWT 5
I JScrollPane, wenn JLabels x Pixel erreichen AWT, Swing, JavaFX & SWT 3
K dynamische jlabels AWT, Swing, JavaFX & SWT 21
F Farbiger Text in JLabels AWT, Swing, JavaFX & SWT 9
L Hinzufügen eines JLabels AWT, Swing, JavaFX & SWT 4
U Bilder, JLabels, JButtons voreinander AWT, Swing, JavaFX & SWT 7
loadbrain 3 JLabels untereinander ohne Abstand AWT, Swing, JavaFX & SWT 4
J jlabels überlappen / vorder-hintergrund AWT, Swing, JavaFX & SWT 2
X Focusproblem beim Refresh eines jLabels AWT, Swing, JavaFX & SWT 4
B Update von JLabels AWT, Swing, JavaFX & SWT 2
J GridBagLayout JLabels links ausrichten + vertikaler Freiraum AWT, Swing, JavaFX & SWT 4
G JLabels mehrmals erstellen AWT, Swing, JavaFX & SWT 7
G der sinn von labels/jlabels ? AWT, Swing, JavaFX & SWT 3
V Probleme mit JLabels AWT, Swing, JavaFX & SWT 4
D Font eines JLabels verändern, JLabel mit LookAndFeel-Format AWT, Swing, JavaFX & SWT 2
J Farbverlauf als Hintergrund eines JLabels AWT, Swing, JavaFX & SWT 4
L Größe eines JLabels an enthaltenen Text anpassen AWT, Swing, JavaFX & SWT 2
B Problem mit JLabels und deren Inhalt AWT, Swing, JavaFX & SWT 2
T Größe und Position eines JLabels ermitteln AWT, Swing, JavaFX & SWT 3
P JLabels übereinander legen AWT, Swing, JavaFX & SWT 8
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
melaniemueller JavaFX Beispiel kann nicht ausgeführt werden AWT, Swing, JavaFX & SWT 4
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
W Können Animationen in JavaFX "verschluckt" werden? AWT, Swing, JavaFX & SWT 8
M Umwandlung in den HSV-Farbraum lässt die Grafik pixelig werden AWT, Swing, JavaFX & SWT 8
H JButtons werden nicht angezeigt AWT, Swing, JavaFX & SWT 5
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
ProggersWorld JavaFX Icons im TreeView werden nicht angezeigt AWT, Swing, JavaFX & SWT 1
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
J e(fx)clipse funkioniert nicht / imports werden Rot gekennzeichnet AWT, Swing, JavaFX & SWT 1
ronbot77 JavaFX Rechtecke werden nicht neu gezeichnet AWT, Swing, JavaFX & SWT 8
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
L Image kann nicht gefunden werden AWT, Swing, JavaFX & SWT 1
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
MoxxiManagarm JavaFX Auch ich versuche mit JavaFX warm zu werden AWT, Swing, JavaFX & SWT 9
A 2D-Grafik Zeichen werden über unabhängingen JRadioButton nicht gefüllt AWT, Swing, JavaFX & SWT 28
L Swing JPanels werden nicht angezeigt! AWT, Swing, JavaFX & SWT 7
ralfb1105 Swing SwingWorker - max 10 Threats werden gestartet !? AWT, Swing, JavaFX & SWT 5
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
SchmidiMC 2D-Grafik Grafiken werden nicht gezeichnet AWT, Swing, JavaFX & SWT 2
J Controler werden nicht inialisiert - Warum ? AWT, Swing, JavaFX & SWT 12
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben