[ImageIcon] socorro

3 respostas
ken420

Pessoal tenhu um projeto com um probleminha, a tela contem 2 JPanel um no topo otro no rodape e entre eles tem um papel de parede.png, ele insere tudo certinho so que o problema é que quando mudo a resolucao da minha tela a imagem n fica do tamanho da tela, entao a minha dúvida é a seguinte como faço isso? pesquisei bastante na internet e criei um método que eu acho que seria a solucao mas tambem nao estou tendo sucesso nisso vejam

private void initialize() {
   this.image = this.getImage("papeldeparede.png");

   this.setLayout(new BorderLayout());
}
 
public Image getImage(String path) {   
    URL imageURL = getClass().getResource(path);   
    if (imageURL == null)   
        return null;   

    return new ImageIcon(imageURL).getImage();   
}
 public void paintComponent(Graphics g) {
    super.paintComponents(g); 
    Dimension dDesktop = this.getSize();

    double width = dDesktop.getWidth();
    double height = dDesktop.getHeight();

    Image background = new ImageIcon(this.image.getScaledInstance(
            (int) width, (int) height, 1)).getImage();

    g.drawImage(background, 0, 0, this);
}

quando compilo ele da esse seguinte erro

Exception in thread "main" java.lang.NullPointerException
        at java.awt.Container.addImpl(Container.java:1010)
        at java.awt.Container.add(Container.java:348)
        at br.com.Model.TelaPrincipal.initForm(TelaPrincipal.java:288)
        at br.com.Model.TelaPrincipal.<init>(TelaPrincipal.java:42)
        at br.com.Model.TelaPrincipal.main(TelaPrincipal.java:451)

pessoal to a muitos dias nisso ta complicado ;~ n sei se esse é o correto metodo para o meu problema mas se for ta ae o codigo algueim poderia me ajudar, alias me salvar :l vlw pessoal abração!

3 Respostas

ken420

OBS: os 2 painels eu consegui extender ele conforme eu mude a resolucao mas a imagem fica a mesma pequena =((

M

Há pouco tempo aqui no fórum, uma classe JImagePanel foi postada por ViniGodoy. Nela, existe a possibilidade de colocar uma imagem em um painel e escolher como ela será exibida - lado a lado, normal ou redimesionada para ocupar todo o espaço (seu caso).
Procure aqui no fórum que acho que vai ajudar.

ken420

dei uma olhada mas n era isso nao? algueim pode me ajudar?

Criado 30 de janeiro de 2009
Ultima resposta 31 de jan. de 2009
Respostas 3
Participantes 2