关于使用Java Swing在循环中动态加载图像的问题

时间:2012-09-04 18:46:36

标签: java image swing

public String[] imagesArray = {Images.firstImage, Images.secondImage};

String imagesPath = "/testproject/images/";
 for(int i = 0; i<imagesArray.length; i++) {
    URL imageURL = this.getClass().getResource(imagesPath+imagesArray[i]);
    ImageIcon orignalImageIcon = new ImageIcon(imageURL);
    Image newImage = orignalImageIcon.getImage().getScaledInstance(100, 90, java.awt.Image.SCALE_SMOOTH);
    ImageIcon newImageIcon = new ImageIcon(newImage);

    JButton receiptButton = new JButton(newImageIcon);
    receiptButton.setBorder((new EmptyBorder(0,0,0,0)));
    toolBar.add(receiptButton);
    add(toolBar);
    }

我的设计版面中没有显示图片?

1 个答案:

答案 0 :(得分:4)

问题很可能是使用ImageIcon加载原始图像的异步加载特性。

如果那是问题:

  1. 有一种简单的方法可以测试它。将orignalImageIcon添加到按钮,看看它们是否全部显示。
  2. 有一种简单的方法可以修复它。使用ImageIO.read(URL)加载图像 - 这种方法将阻止图像完全加载。