Colocar imagem de fundo em Jframe

7 respostas
G

boa noite a todos

estou tentando colocar uma imagem de fundo em um Jframe e estou usando o codigo abaixo para deixar o jframe maximizado.

setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);

mas eu quero colocar uma 2 jLabel e 2 jTextField quando quando eu tento colocar por cima nao da certo.
se eu mudar o jFrame para layoutAbsolute e pergo a função autodimensionar.oque e posso fazer?

sera que alguem tem uma ideia

7 Respostas

gaulix

Podes colocar um jpanel dentro do teu jframe (eu gosto de fazer isso, não gosto de colocar os componentes direto no frame) e criar uma classe que extends o JPanel sobrescrevendo o método paintComponent, tipo assim:

public class Background extends JPanel {

    BufferedImage b;
    Rectangle2D rect;

    public Background(String image) {
        try {
            b = ImageIO.read(Thread.currentThread().getClass().getResourceAsStream(image));//carrego a imagem
            rect = new Rectangle(0, 0, b.getWidth(), b.getHeight());//crio um retangulo com o tamanho da imagem

        } catch (IOException ex) {
            ex.printStackTrace(System.err);
        }
    }

    @Override
    public void paintComponent(Graphics g) { 
        TexturePaint p = new TexturePaint(b, rect);//preencho a tela com esses retangulos
        Graphics2D g2 = (Graphics2D) g;
        g2.setPaint(p);//digo pro grafico da tela que vou fazer um texturePaint
        g2.fillRect(0, 0, this.getWidth(), this.getHeight());//desenho a textura na tela toda, preenchendo com a imagem escolhida

    }
}

ai você faz o seguinte pra criar o JPanel:

JPanel painelPrincipal = new Background("/images/fundo.png");

Lembrando que podes alterar, esse usa um TexturePaint, que vai pegar uma imagem pequena e colocar na tela toda, leia [ur=http://www.pontov.com.br/site/java/48-java2d/97-pintando-no-java-2dl]aqui[/url] na parte preenchimento(fill) pra entender melhor.

ViniGodoy
G

tentei fazer mas esta dando erro neste import
import com.towel.swing.img.JImagePanel

gaulix

você importou a biblioteca Towel pro seu projeto?

G

agora abriu

G

mas para eu abrir este JImagePanel no meu painel swing

G

ou melhor add no meu frame swing

Criado 30 de outubro de 2012
Ultima resposta 31 de out. de 2012
Respostas 7
Participantes 3