如何将图像添加到JPanel?

我有一个JPanel,我想添加我生成的JPEG和PNG图像。

我在Swing教程中看到的所有示例,特别是Swing示例中使用ImageIcon的示例。

我将这些图像生成为字节数组,并且它们通常比它们在示例中使用的常用图标大640x480。

  • 在使用ImageIcon类来显示JPanel大小的图像时是否存在任何(性能或其他)问题?
  • 通常的做法是什么?
  • 如何在不使用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            
        }
    
    }
    

    如果您使用的是JPanel,那么可能与Swing合作。 尝试这个:

    BufferedImage myPicture = ImageIO.read(new File("path-to-file"));
    JLabel picLabel = new JLabel(new ImageIcon(myPicture));
    add(picLabel);
    

    图像现在是一个摆动组件。 它像任何其他组件一样受制于布局条件。


    我认为不需要任何东西的子类。 只需使用Jlabel。 您可以将图像设置为Jlabel。 所以,调整Jlabel的大小然后用图像填充它。 没关系。 这是我的方式。

    链接地址: http://www.djcxy.com/p/88879.html

    上一篇: How to add an image to a JPanel?

    下一篇: Read line break in a string with JavaScript