Re:Textura no fundo de um container

Você tem que usar um TexturePaint.

  1. Primeiramente, você cria um retângulo, com as dimensões que a imagem terá.
  2. Você cria um TexturePaint, usando a imagem e a âncora;
  3. Associe o seu contâiner ao seu objeto graphics.
  4. Depois você pinta o fundo do seu container.

Exemplo (esse exemplo considera que você possui o atributo img, um BufferedImage já carregado com a imagem que você quer):

public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D)g.create(); Rectangle2D anchor = Rectangle2D.Double(0, 0, img.getWidth(), img.getHeight()); TexturePaint paint = new TexturePaint(img, anchor); g2d.setPaint(paint); g2d.fillRect(0, 0, getWidth(), getHeight()); g2d.dispose(); }

PS: Não testei o código, não tenho certeza que funcione. Talvez tenha um outro outro bug, mas o princípio é esse aí.

Saudações, galera.

O meu grande sonho, depois de comprar um fusca amarelo e de usar uma sandália Havaianas cujo cabresto não saísse na primeira topada, é encontrar a solução para estes problemas (brincadeira) :

Eu tenho um container e quero pôr uma imagem no fundo dele, de modo que essa imagem fosse o “papel de parede” desse container. Já consegui fazer isso, mas de modo que a imagem modificasse suas dimensões conforme a janela modificasse as suas - isto é: o tamanho da figura não era fixo.

O que eu quero fazer é pôr uma textura no fundo dos meus containers e outros componentes - colocar, por exemplo, a imagem de um gramado de 35x35 pixels e conseguir que ela seja repetida (e não aumentada) até cobrir um JPanel de 300x400 pixels.

Já agradeço só pelo ineresse. Valeu, cês são “pai d’égua” ( isso, no Ceará, é um elogio).

Muito agradecido.

Foi mal, ams eu testei e não funcionou.

Você [ ou alguém ] pode ao menos me indicar um local onde eu possa pesquisar isso?

:lol: