我希望在地图上显示带有绘制线条的图像,并为图像中的每个部分创建单独的图像(多条连接线条)。我写了这段代码:
public BufferedImage getLineImage() {
BufferedImage lineImage = null;
BufferedImage lineImage1[]=null;
int i=0;
if(image != null) {
lineImage1[i] = new BufferedImage(image.getWidth(), image.getHeight(), image.getType());
lineImage = new BufferedImage(image.getWidth(), image.getHeight(), image.getType());
Graphics2D g1 = lineImage1[i].createGraphics();
Graphics2D g = lineImage.createGraphics();
g.setColor(Color.WHITE);
g.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
g1.setColor(Color.WHITE);
g1.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
for(Section section : observeTraffic) {
section.paintTags(g1);
i++;
}
for(Section section : observeTraffic) {
section.paintTags(g);
}
}
return lineImage;
return lineImage1;
}
但在最后一行我收到错误:不兼容的类型
java:不兼容的类型 required:java.awt.image.BufferedImage 发现:java.awt.image.BufferedImage []
有人可以帮帮我吗?
由于
答案 0 :(得分:1)
lineImage1
定义为BufferedImage lineImage1[]
,它是BufferedImages的数组。方法的返回值为BufferedImage
。
您要么将返回类型更改为BufferedImage
的数组,要么只返回一个BufferedImage
。
答案 1 :(得分:0)
方法的返回类型是BufferedImage
但是你试图返回BufferedImage数组。那就是你的错误发生了
顺便说一下:你真的有2份退货声明吗?
答案 2 :(得分:0)
有些人在不知道的时候可能会感到困惑
BufferedImage lineImage1[] = null;
与
相同BufferedImage[] lineImage1 = null;
你不能有两个回报,这在Java中是非法的。
因此,如果您想要返回多个对象,可以执行类似
的操作public Object[] getLineImage() {
(...)
Object[] o = new Object[2];
o[0]=lineImage;
o[1]=lineImage1;
return o;
}