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?
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:
[code]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
}
}[/code]
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.