【发布时间】:2015-09-29 17:31:03
【问题描述】:
我一直在学习图形的教程,在一个程序中,作者使用图像来制作纹理涂料。我已经复制了他的代码,但是我不知道在哪里实际放置图像以供其阅读。我尝试在 eclipse 中创建一个资源文件夹并将其设置为源文件夹构建路径,但这没有用。代码如下:
编辑: 好的,我发现它正在从课程的来源获取图像。但是,假设我想从桌面或硬盘上的其他位置提取图像,我该怎么做?
class Surface extends JPanel {
private BufferedImage slate;
private BufferedImage java;
private BufferedImage pane;
private TexturePaint slatetp;
private TexturePaint javatp;
private TexturePaint panetp;
public Surface() {
loadImages();
}
private void loadImages() {
try {
slate = ImageIO.read(new File("slate.png"));
java = ImageIO.read(new File("java.png"));
pane = ImageIO.read(new File("pane.png"));
} catch (IOException ex) {
Logger.getLogger(Surface.class.getName()).log(
Level.SEVERE, null, ex);
}
}
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
slatetp = new TexturePaint(slate, new Rectangle(0, 0, 90, 60));
javatp = new TexturePaint(java, new Rectangle(0, 0, 90, 60));
panetp = new TexturePaint(pane, new Rectangle(0, 0, 90, 60));
g2d.setPaint(slatetp);
g2d.fillRect(10, 15, 90, 60);
g2d.setPaint(javatp);
g2d.fillRect(130, 15, 90, 60);
g2d.setPaint(panetp);
g2d.fillRect(250, 15, 90, 60);
g2d.dispose();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}
【问题讨论】:
-
stackoverflow.com/questions/17912041/… 这能解决你的问题吗?
-
啊是的,它确实 gmk!谢谢!具有讽刺意味的是,这段代码也是来自 zetcode 的教程。虽然我可能仍会保留这个问题并稍作修改,但您会如何选择不同的位置作为图片的来源?
-
只使用绝对
PATH归档。 linux: /home/user/... 窗口:C:/Users/.. -
哦,我明白了,再次感谢!我会试试的。 @gmk 如果你愿意,你可以把它写下来作为答案,这样我就可以接受它并关闭问题。
-
但是使用
getResource();会更好。
标签: java eclipse image graphics io