如何在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项目中创建一个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());

相关内容

  • 没有找到相关文章

最新更新