Tenho uma Label com uma imagem, selecionando com um Menu Popup posso selecionar um ou mais de um Item(Imagem) e adicionar ao Label em uma determinada posição dessa forma:
lbImagem é um JLabel e lb_Dente18.getIcon() é um ImageIcon, e você está tentando comparar maçãs com laranjas. “equals” sempre vai voltar false porque você está tentando comparar coisas de tipos diferentes.
V
Vander_Carlos
Faltou a primeira parte, os dois são um ImageIcon:
ImageIcon icon = new javax.swing.ImageIcon(getClass().getResource("/br/autodontov1/Procedimentos/Amputacao/18.png"));
JLabel lbImagem = new JLabel(icon);
if (lb_Dente18.getIcon().equals(lbImagem) == false) {
lb_Dente18.add(lbImagem);
lbImagem.setBounds(new Rectangle(-1, -32, icon.getIconWidth(), icon.getIconHeight()));
} else {
lbImagem.setIcon(null);
lbImagem.repaint();
}
}
E
entanglement
Meu detector de tipos de expressões diz-me que lbImagem é um JLabel e lb_Dente18.getIcon() é um ImageIcon
V
Vander_Carlos
Ops :?, os dois são um Label.
private javax.swing.JLabel lb_Dente18;
lb_Dente18 = new javax.swing.JLabel();
E
entanglement
É claro que lb_Dente18 é um JLabel.
Mas lb_Dente18.getIcon() retorna um ImageIcon.
Provavelmente você está com sono…
V
Vander_Carlos
Aaaa entendi kkkk
Então sem fazer essa comparação com o lb_Dente18 e o lbImagem como eu verifico se no Label já foi adicionado algum Icon ?
[]'s
E
entanglement
Espera um pouquinho.
Você quer saber se já foi adicionado algum icon (nesse caso, getIcon() retorna algo diferente de null) ou se o ícone é igual ao que você carregou?
Se for tentar checar se é igual, mesmo comparar 2 objetos ImageIcon com “equals” não é garantia de sucesso - isso porque não sei como é implementado o “equals” na classe ImageIcon. Acho que ele não é nem reimplementado da classe Object, e compara apenas para ver se as instâncias são a mesma ou não.
Acredito que se você carregar 2 vezes o mesmo ícone do mesmo arquivo com new ImageIcon, como você fez, irá retornar 2 instâncias diferentes (embora mostrando exatamente a mesma coisa na tela) e elas irão comparar, usando o “equals”, como diferentes, não iguais.
Não é melhor você estabelecer um outro tipo de controle?
V
Vander_Carlos
Queria verificar se já foi adicionado um ícone, pq se eu já tiver a imagem na Label fazer a verificação e em vez de adicionar outra imagem ele remove a que estava.
Eu criei agora mais dois itens de menu pra sair disso logo, um com adicionar e outro com remover.
V
Vander_Carlos
Bom, dessa forma forma de criar os dois menus deu certo. O ruim é que o código vai ficar enorme D: