如何在Java Swing GUI中放置图像

时间:2014-04-22 20:32:07

标签: java eclipse image swing user-interface

我是Swing的新手,只需要知道如何将图像放在GUI的主屏幕上。我不希望它成为背景。当我的讲师演示它时,我认为他把它放在JLabel里面。我将图像保存到笔记本电脑中,但是我是否需要将其导入到我在Eclipse中工作的项目中?如果是这样,保存它的最佳位置在哪里?感谢。

2 个答案:

答案 0 :(得分:3)

将项目中的images文件夹中的所有图像与src文件夹并行放置。

       F:/>Kiosk
             |
             |___src                 
                   |
                   |__main1.java
             |
             |__images
                |
                |__c.jpg
                |__d.jpg
                |__e.jpg
                |__f.jpg

使用此代码

ImageIO.read(new File("images\\c.jpg"));
ImageIO.read(new File("images\\d.jpg"));

你可以尝试任何一个

// Read from same package 
ImageIO.read(getClass().getResourceAsStream("c.png"));

// Read from absolute path
ImageIO.read(new File("E:\\SOFTWARE\\TrainPIS\\res\\drawable\\c.png"));

// Read from images folder parallel to src in your project
ImageIO.read(new File("images\\c.jpg"));

以上所有方法都会返回BufferedImage

  

如何将BufferedImage转换为ImageIcon

BufferedImage image = ImageIO.read(new File("images\\c.jpg"));
ImageIcon icon = new ImageIcon(image);
JLabel label = new JLabel(icon);

答案 1 :(得分:0)

在Eclipse项目中创建一个image子目录,并将图形复制到该文件夹​​。然后,将JPanel扩展为:

class MyImagePanel extends JPanel {
    private ImageIcon imageIcon = new ImageIcon("image/myimage.gif");
    private Image image = imageIcon.getImage();

    protected void paintComponent(Graphics g) {
    super.paintComponent(g);

    if (image != null) g.drawImage(image,0,0,getWidth(),getHeight(),this);
    }
}

从那里,您可以使用以下方法将此面板添加到主JFrame中:

 add(new MyImagePanel());