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