Hinzufügen von Bildern zu den Zellen in einem GridLayout
Versuchen, um ein gridLayout-Objekt und füllen es mit Bildern, wo ist es schief gehen kann?
ImageIcon grassIcon = new ImageIcon("images/grass_tile.jpg");
JPanel panel = new JPanel(new GridLayout(haps,snaps,0,0));
JLabel labels[] = new JLabel[(haps*snaps)];
for (int i = 0; i < haps*snaps; i++)
{
labels[i] = new JLabel(grassIcon);
panel.add(labels[i]);
}
frame.add(panel);
was sehen Sie ? Fehler ? nennt man frame.pack()?
frame.pack() hat den job! Aber wie und warum ? In der Dokumentation!!! danke.
Warum es passiert ist, In Swing beim erstellen der Komponente, ist es nicht gültig, d.h. es gilt-Eigenschaft ist false. Eine Komponente wird als gültig bezeichnet, wenn es die Breite, die Höhe, den Standort und die Sachen wurden bestimmt. Dies geschieht in der Regel durch den Aufruf Ihrer Methode validate (), die direkt oder indirekt. Wenn wir rufen validate() auf den Container, es überprüft den container (wenn er ungültig ist), durch den Aufruf dessen doLayout () - Methode, die in der Regel ruft der LayoutManager.
Fortsetzung... : Nun jedes Kind auf diesem container werden überprüft rekursiv, so dass der ganze Baum angelegt und wird gültig. Hier aufrufen
frame.pack() hat den job! Aber wie und warum ? In der Dokumentation!!! danke.
Warum es passiert ist, In Swing beim erstellen der Komponente, ist es nicht gültig, d.h. es gilt-Eigenschaft ist false. Eine Komponente wird als gültig bezeichnet, wenn es die Breite, die Höhe, den Standort und die Sachen wurden bestimmt. Dies geschieht in der Regel durch den Aufruf Ihrer Methode validate (), die direkt oder indirekt. Wenn wir rufen validate() auf den Container, es überprüft den container (wenn er ungültig ist), durch den Aufruf dessen doLayout () - Methode, die in der Regel ruft der LayoutManager.
Fortsetzung... : Nun jedes Kind auf diesem container werden überprüft rekursiv, so dass der ganze Baum angelegt und wird gültig. Hier aufrufen
pack()
ist indirekt die änderung der invalid state
der Komponenten zu einem valid state
. Mehr Infos finden Sie auf dieser threadInformationsquelleAutor Jesper Tuborg Madsen | 2013-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur versuchen, zu prüfen, Ihre image-Pfad, wenn Sie haben es richtig. Oder vielleicht für eine Prüfung, wenn Sie wirklich das Bild angezeigt wird, versuchen Sie, machen es zu einem absoluten Pfad. Und auch, bitte erläutern Sie Ihre Probleme.
InformationsquelleAutor nsutgio
Als ben75 schreibt, ist es erforderlich, Rahmen.pack();
Creds zu ihm!
InformationsquelleAutor Jesper Tuborg Madsen
Zeigen den Rahmen mit Rahmen.setVisible-Methode(true);
InformationsquelleAutor Alya'a Gamal