我正在尝试使用相对路径从图像面板访问某些图像。在Eclipse项目中,我有一个名为images的文件夹,里面有图像。这是我的代码:
val top = new MainFrame {
title = "Predator and Prey Agent simulation"
val buttonExit = new Button {
text = "Exit"
action = Action("Exit") {
WorldActor.run(false)
closer
}
}
val buttonStart = new Button {
text = "Start"
action = Action("Start") {
switchPanes()
}
}
val s = new Dimension(500, 700)
contents = new ImagePanel(0, 1) {
for (i <- 0 until 5){
contents+= new Label("")
}
contents += buttonStart
contents += buttonExit
contents+= new Label("")
minimumSize = s
maximumSize = s
preferredSize = s
imagePath = ("\\PredatorPrey\\images\\gnp-canadian-lynx-kitten.jpg")
}
}
每次上面的代码运行时,我都会得到一个javax.imageio.IIOException。这是imapePanel类:
case class ImagePanel(rows0: Int, cols0: Int) extends GridPanel(rows0, cols0) {
private var _imagePath = ""
private var bufferedImage: BufferedImage = null
def imagePath = _imagePath
def imagePath_=(value: String) {
_imagePath = value
bufferedImage = ImageIO.read(new File(_imagePath))
}
override def paintComponent(g: Graphics2D) = {
if (null != bufferedImage) g.drawImage(bufferedImage, 0, 0, null)
}
}
有谁知道如何解决这条道路?
答案 0 :(得分:4)
我只是使用awt:
import java.awt.Toolkit
val image = Toolkit.getDefaultToolkit.createImage("images/kitten.jpg")
编辑:
此外,从图片路径中删除\\PredatorPrey\\
。
编辑2: 只是解释问题中引用的代码错误 - 当文件路径名以“/”(或Windows中的“\”)开头时,它变为绝对(斜杠表示当前文件系统/驱动器的根)。此外,代码包含路径中的项目名称。由于应用程序是从 inside 项目运行的,因此路径中不需要项目目录(您已经在该目录中!)。
答案 1 :(得分:1)
如果您尝试使用相对路径,则需要在路径中删除起始斜杠。
imagePath = ("PredatorPrey\\images\\gnp-canadian-lynx-kitten.jpg")