【发布时间】:2009-06-25 18:58:38
【问题描述】:
我的图像从服务器传递到我的程序并保存为字符串。我想将该字符串转换为图像,然后在GridBagLayout 内的标签内显示该图像。当我执行下面的代码时,我得到一个空白框。执行过程中没有异常。当我在调试中查看来自ToolKit 的图像对象时,它确实说高度和宽度为-1(但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));
【问题讨论】:
-
你能不能用一个简单的 FlowLayout 试试看能不能显示出来?
-
我也尝试过使用 FlowLayout 和 GridLayout,结果总是一个空白框。
-
图片加载完成后有人没有收到更新?