Мое изображение передается в мою программу с сервера и сохраняется в виде строки. Я хочу преобразовать эту строку в изображение, а затем отобразить это изображение в метке внутри GridBagLayout
. Когда я выполняю код ниже, я получаю пустую рамку. Нет исключений во время исполнения. Когда я смотрю на объект изображения из ToolKit
в отладке, он говорит, что высота и ширина равны -1 (но у «imagedata» в source = ByteArrayImageSource
есть байт [5144]). Есть идеи?
Добавлено примечание: изображение хранится в программе в виде строки, поскольку данные сериализуются в C # и десериализуются в Java. Этот процесс, по-видимому, не нравится byte[]
в процессе десериализации, поэтому я сохраняю его как строку и использую getBytes
, когда хочу использовать изображение.
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));