Mein Bild wird von einem Server in mein Programm übernommen und als String gespeichert. Ich möchte diese Zeichenfolge in ein Bild konvertieren und dann wiederum dieses Bild innerhalb eines Labels innerhalb eines GridBagLayout
anzeigen. Wenn ich den untenstehenden Code ausführe, bekomme ich einen leeren Rahmen. Keine Ausnahmen während der Ausführung. Wenn ich das Bildobjekt von der ToolKit
in debug anschaue, heißt es, Höhe und Breite sind -1 (aber die "Bilddaten" innerhalb der source = ByteArrayImageSource
hat Byte [5144]). Irgendwelche Ideen?Bildanzeige in GridBagLayout Java
hinzugefügt Hinweis: Image wird im Programm als String gespeichert, da die Daten in C# serialisiert und innerhalb von Java deserialisiert werden. Dieser Prozess scheint nicht byte[]
im Deserialize-Prozess, so dass ich es als Zeichenfolge speichern und getBytes
verwenden, wenn ich das Bild verwenden möchte.
imageToDisplay = Toolkit.getDefaultToolkit().createImage(myString.getBytes());
ImageIcon logoIcon = new ImageIcon(imageToDisplay);
JLabel logolabel = new JLabel(logoIcon);
mainPanel.add(logolabel, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL,
new Insets(2, 2, 2, 2), 0, 0));
mainFrame.add(mainPanel, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(2, 2, 2, 2), 0, 0));
Können Sie es mit einem einfachen FlowLayout versuchen und sehen, ob es sich zeigt? –
Ich habe es mit einem FlowLayout und einem GridLayout auch versucht, immer ein leerer Rahmen als Ergebnis. –
Jemand erhält das Update nicht, wenn das Bild geladen ist? –