繁体   English   中英

如何在Java Swing GUI中放置图像

[英]How to place an Image in a Java Swing GUI

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

将所有图像放入项目中与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);

在Eclipse项目中创建一个图像子目录,然后将图形复制到该文件夹​​。 然后,扩展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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM