Просто создайте BufferedImage объект:
BufferedImage image = ImageIO.read(filename);
Тогда вместо того, чтобы делать g.drawShape сделать:
g.drawImage(image, [starting x], [starting y], [image width], [image height], [image observer]);
В вашем случае, вы, вероятно, будет не нужен наблюдатель изображения, поэтому вы можете просто положить null
в это место.
Тогда то, что было бы проще всего, - это просто нарисовать прямоугольник над изображением. Несмотря на то, что изображение фактически не будет «внутри» прямоугольника, многоуровневый эффект заставит его выглядеть так, как если бы он был. Вы можете использовать drawRect
вместо fillRect
, так что вы просто получите границу вокруг своего изображения.
Чтобы гарантировать, что ваш прямоугольник окажется поверх изображения, и не покрывается, так как изображение имеет тот же размер, не забудьте установить линию drawRect после drawImage.
g.drawRect([starting x], [starting y], [width], [height]);
Проверьте эти Graphics Java Docs для получения дополнительной информации о чертежных изображениях.
'g.drawImage'? Что вы подразумеваете под «добавлением к форме»? Вы хотите обрезать изображение так, чтобы он был такой же, как форма? Или просто нарисуйте изображение в форме? – MadProgrammer
Я хочу, чтобы изображение было внутри формы, но форма имела тот же хит-пойнт. – Harrison
Вы хотите нарисовать то же самое вокруг изображения? – MadProgrammer