Alterar imagem do JLabel [RESOLVIDO]

1 resposta
laurovitor

Ola. a todos…

Bom to com uma duvida aqui que e a seguinte eu tenho varios JLabel na minha aplicação e o caminho da imagem deles eu carrego da minha database mysql

quando eu crio ele a primeira vez eu coloco uma imagem base.

int tamanhoCapa = screenSize.width / 4;
        Image sCapa = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/painelimagem/imagens/semcapa.png"));
        Image semCapa = sCapa.getScaledInstance(tamanhoCapa, tamanhoCapa, Image.SCALE_DEFAULT);

        jLCapa1 = new JLabel(new ImageIcon(semCapa));
        jLCapa1.setBorder(bordaCapa);
        jLCapa1.setOpaque(true);
        jLCapa1.setBackground(new Color(255, 0, 0));
        jPanel1.add(jLCapa1);

ate aqui blz ele cria da o tamanho tudo certinho agora a unica maneira q eu consegui foi fazendo assim:

int tamanhoCapa = screenSize.width / 4;

        novaImagem = array[0][1];
        if(novaImagem != null){
            Image nCapa = Toolkit.getDefaultToolkit().getImage(novaImagem);
            Image novaCapa = nCapa.getScaledInstance(tamanhoCapa, tamanhoCapa, Image.SCALE_DEFAULT);
            jPanel1.remove(jLCapa1); // REMOVE A JLabel ORIGINAL
            jLCapa1 = new JLabel(new ImageIcon(novaCapa));
            jLCapa1.setBorder(null);
            jLCapa1.setOpaque(false);
            jLCapa1.setBackground(new Color(255, 0, 0));
            jPanel1.add(jLCapa1);
        }

inves de ter q ficar removendo e recriando a JLabel toda a vez, alguem saberia se da pra so dar um refresh na imagem dela eu so indico o novo caminho e atualiza a imagem em tempo de execução?

pq o meu problema e o seguinte da forma q eu fiz ate funciona mais o que acontece e que e o seguinte o jPanel1 esta em GridLayout 2,4 e quando eu atualizo a imagem removendo o jLabel1 a posição deles move, quando eu recrio ele ele vai la pro final no lugar do jLabel8 e eu queria q ele ficasse no mesmo lugar

JLabel iniciando pela primeira vez (deveria sempre ficar assim)
[1][2][3][4]
[5][6][7][8]

Removendo um JLabel
[2][3][4][5]
[6][7][8]

Adicionando um novo JLabel
[2][3][4][5]
[6][7][8][1] <- aqui ta meu problema eu nao queria isso funciona mais nao da forma que eu queria.

antes q alquem fale "atualize todos…" ja explico que nem sempre serao todos atualizados

se alguem puder me dar um help eu agradeço …

1 Resposta

laurovitor

bom ja que ninguem soube resp demorei mais achei vo postar aqui caso alguem tenha a mesma duvida…

int tamanhoCapa = screenSize.width / 4;  
  
novaImagem = array[0][1];  
if(novaImagem != null){  
    Image nCapa = Toolkit.getDefaultToolkit().getImage(novaImagem);  
    Image novaCapa = nCapa.getScaledInstance(tamanhoCapa, tamanhoCapa, Image.SCALE_DEFAULT);  
    jLCapa1.setIcon(new ImageIcon(novaCapa)); // simples assim =]
}
Criado 30 de novembro de 2010
Ultima resposta 30 de nov. de 2010
Respostas 1
Participantes 1