2016-04-16 17 views
1
JLabel angezeigte
Game(){ 
    JFrame frame = new JFrame("Display Image"); 
    JPanel panel = (JPanel)frame.getContentPane(); 
    frame.setSize(1000,625); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JLabel label = new JLabel(); 
    label.setIcon(new ImageIcon("C:/Users/Ragnar/Desktop/GameBoard.png")); 
    panel.add(label); 
    frame.setLocationRelativeTo(null); 
    frame.pack(); 
    frame.setVisible(true); 
} 

So habe ich diesen Konstruktor, und ich will ein paar neue JLabels mit Bildern hinzufügen, aber ich möchte, dass sie auf der Oberseite des ersten Bildes angezeigt werden, die das Bild des ersten ist jLabel label.Kann mir jemand bitte sagen, wie ich das erreichen kann? Ich habe versucht, sie wie üblich hinzuzufügen, aber sie werden hinter dem Etikett angezeigt.eine JLabel vor einem anderen

Antwort

3

Wenn Sie ein Hintergrundbild haben und das JLabel über dem Hintergrundbild anzeigen möchten, können Sie ein JPanel verwenden, um das Hintergrundbild zu speichern, und fügen Sie dann JLabel hinzu.

Normalerweise, wenn Sie versuchen, 2 JLabel sie überlappen zu lassen, es wird nicht aufgrund des Standard-Layout-Manager von dem Container (wie FlowLayout in JPanel oder BorderLayout in JFrame) verwendet gelingen.

Wenn Sie sie wirklich überholen lassen möchten, müssen Sie das Layout auf Null setzen. Sie können jedoch neue Probleme verursachen, da Sie die Kontrolle über das Aussehen Ihrer Komponenten verlieren.

daher wie dies in Fällen, die ich in der Regel für benutzerdefinierte Malerei gehen und die Bilder zeichnen Sie in einer bestimmten Reihenfolge möchten Sie interessiert sind

Zum Beispiel. How to create a background and foreground image which overlaps?

Verwandte Themen