Você quer pegar uma imagem (por exemplo, uma foto) e adicionar uma legenda SOBRE a foto, mais ou menos como as legendas de filmes?
Isso normalmente se faz com Java2D e drawString, se você não precisar de pôr um “outline” nas letras;
O que é um “outline”? Vou dar um exemplo. Digamos que você queira usar letras brancas em uma foto cujo fundo é quase todo branco.
Você não vai enxergar as letras, certo? Então você normalmente contorna as letras brancas com um contorno de cor contrastante (digamos preto ou vermelho).
Se precisar incluir um outline, é um pouco mais chato, e na verdade não sei lhe dizer assim de “bate-pronto” o que se costuma fazer. Não sei exatamente como gerar esse contorno.