我是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());