例如,如果我使用这种方式来获取图像:
InputStream imgpacman2up = Tablero.class.getResourceAsStream("pacmanup1.png");
BufferedImage pacman2upImg = ImageIO.read(imgpacman2up);
pacman2arriba = new ImageIcon(pacman2upImg).getImage();
如果图像保存在项目的另一个包中的文件夹中,图像的路径(“在本例中为”pacmanup1.png“)将如何修改?
谢谢!
答案 0 :(得分:0)
引用getResourceAsStream()
的javadoc:
在委托之前,使用此算法从给定的资源名称构造绝对资源名称:
- 如果
String[] arrStr; switch (sensorType) { case "acc": { curCSV = db.rawQuery("SELECT * FROM " + DATA_ACC_TABLE_NAME + " WHERE id = " + subNum, null); arrStr = new String[]{curCSV.getString(0), curCSV.getString(1), curCSV.getString(2),curCSV.getString(3), curCSV.getString(4)}; break; } case "gyro": { curCSV = db.rawQuery("SELECT * FROM " + DATA_GYRO_TABLE_NAME + " WHERE id = " + subNum, null); arrStr = new String[]{curCSV.getString(0), curCSV.getString(1), curCSV.getString(2),curCSV.getString(3), curCSV.getString(4)}; break; } }
以name
('/'
)开头,那么资源的绝对名称就是'\u002f'
跟name
之后的部分1}} 强>否则,绝对名称的格式如下:
'/'
modified_package_name/name
是此对象的包名称,其中modified_package_name
替换为'/'
('.'
)。
答案 1 :(得分:0)
假设您的图片位于包aaa.bbb.ccc
中,请使用以下/aaa/bbb/ccc
。
答案 2 :(得分:0)
如果它位于某个名为"资源"的文件夹中。在src中,下面的代码访问java类中的图像。
InputStream imgpacman2up = SampleTable.class.getResourceAsStream("/resources/pacmanup1.png");
BufferedImage pacman2upImg = ImageIO.read(imgpacman2up);
pacman2arriba = new ImageIcon(pacman2upImg).getImage();
如果它在某个其他包中,则以下代码访问java类中的图像。
InputStream imgpacman2up1 = SampleTable.class.getResourceAsStream("/com/abc/ab/pacmanup1.png");
BufferedImage pacman2upImg1 = ImageIO.read(imgpacman2up1);
pacman2arriba1 = new ImageIcon(pacman2upImg1).getImage();