Ir ao conteúdo

Posts recomendados

Postado

olá, eu estou estudando um pouco de java e tive um problema, estava testando trocar uma imagem de fundo por outra quando o usuário digitar alguma letra no teclado, porém a imagem só muda quando eu  minimizo a janela e abro de novo,estou usando uma label pra cada imagem, como faço pra imagem mudar sem eu ter que minimizar e depois aumentar a janela?(uso o netbeans)

Postado

@AdrianoSiqueira

package grafico;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class graficolvl2 {
    JFrame im = new JFrame();
    ImageIcon imagem1 = new ImageIcon(getClass().getResource("imagem1.png"));
    ImageIcon imagem2 = new ImageIcon(getClass().getResource("imagem2.png"));
    JLabel label = new JLabel(imagem1);
    JLabel label2 = new JLabel(imagem2);
    public graficolvl2(){
          im.addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent c){
               char letra = c.getKeyChar(); 
               if(letra=='z'){
                   im.remove(label);
                   im.add(label2);
               }
               else{
                   im.remove(label2);
                   im.add(label);
               }
               
            }
        });
        im.setTitle("saaas");
        im.setSize(500,400);
        im.setLocationRelativeTo(null);
        im.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//quando excluir a janela(x) o programa fecha
        im.setVisible(true);
        im.add(label);
}
    public static void main(String[] args){
        new graficolvl2();
                }
}

Postado

Segue um exemplo funcional:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Grafico extends JFrame {
    private JLabel label;

    public Grafico() {
        this.label = new JLabel();
        configure();
    }

    public static void main(String[] args) {
        new Grafico();
    }

    private void configure() {
        label.setHorizontalAlignment(JLabel.CENTER);

        this.setTitle("Imagens");
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setSize(600, 300);
        this.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                label.setIcon(getIcone(e.getKeyCode()));
            }
        });

        this.add(label);
        this.setVisible(true);
    }

    private ImageIcon getIcone(int keyCode) {
        String nomeImagem;
        
        if (keyCode == KeyEvent.VK_Z) {
            nomeImagem = "imagem1.png";
        } else {
            nomeImagem = "imagem2.png";
        }

        ImageIcon icone = new ImageIcon(getClass().getResource(nomeImagem));
        Image imagem = icone.getImage().getScaledInstance(500, 281, Image.SCALE_SMOOTH);
        
        return new ImageIcon(imagem);
    }
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!