如何将图像添加到JPanel?

问题:

我有一个JPanel,我想添加我生成的JPEG和PNG图像。
我在Swing Tutorials到目前为止看到的所有例子,特别是在Swing examples使用ImageIcon中。
我将这些图像生成为字节数组,它们通常大于它们在示例中使用的常见图标640×480。

  1. 使用ImageIcon类在JPanel中显示大小的图像是否存在任何(性能或其他)问题?
  2. 什么是usual的做法?
  3. 如何在不使用ImageIcon类的情况下将图像添加到JPanel?

 编辑:对教程和API的更仔细的检查表明,您不能将ImageIcon直接添加到JPanel。相反,它们通过将图像设置为JLabel的图标来实现相同的效果。这只是感觉不对…

回答:

这是我做的(有关如何加载图像的更多信息):

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class ImagePanel extends JPanel{

    private BufferedImage image;

    public ImagePanel() {
       try {                
          image = ImageIO.read(new File("image name and path"));
       } catch (IOException ex) {
            // handle exception...
       }
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, this); // see javadoc for more info on the parameters            
    }

}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How to add an image to a JPanel?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

41 + = 49