Erro ao utilizar o método icon2Image da classe Utilities

5 respostas
D

Estava tentando adicionar uma imagem para uma cena que criei. Para isso, criei uma classe que estende a classe “Graphscene” e importei normalmente todos os métodos abstratos. Para adicionar a imagem à cena utilizei o método image2Icon da classe Utilities, da seguinte forma:

[size=9]public GraphSceneImpl() {

mainLayer = new LayerWidget(this);

addChild(mainLayer);

image = Utilities.icon2Image(new ImageIcon(getClass().getResource("/org.myorg.shape/image.png")));

addNode(Image);
}[/size]

A imagem image.png eu adicionei ao pacote org.myorg.shape, o mesmo pacote em que se encontra a classe GraphSceneImpl, que constitue nossa cena. O erro retornado é o seguinte:

[color=red]C:\Users\Daniel\Documents\NetBeansProjects\GraphApp\ShapePane\src\org\myorg\shape\GraphSceneImpl.java:28: warning: [deprecation] icon2Image(javax.swing.Icon) in org.openide.util.Utilities has been deprecated

image = Utilities.icon2Image(new ImageIcon(getClass().getResource("/org.myorg.shape/image.png")));

C:\Users\Daniel\Documents\NetBeansProjects\GraphApp\ShapePane\src\org\myorg\shape\GraphSceneImpl.java:29: warning: [unchecked] unchecked call to addNode(N) as a member of the raw type org.netbeans.api.visual.graph.GraphScene

addNode(Image);

2 warnings

[/color]

5 Respostas

victorwss

Na verdade ele compilou. Isso daí são duas warnings (avisos), não são erros.

Erro = Compilador diz: “Olha, não entendi esse negócio aqui, você não pode fazer isso, não dá para compilar isso.”

Warning = Compilador diz: “Olha, entendi o que você quer dizer e eu compilei de boa. Mas, acho que você está fazendo besteira.”

[deprecation] = Esse método não presta, não use ele por favor.
[unchecked] = Não consegui verificar o tipo da variável por completo, pode dar um ClassCastException inesperado.

D

Ok, me expressei mal ao dizer “Erro”, que certamente é diferente de warning. Mas de qualquer forma preciso entender em que consiste esta incompatibilidade, ou o que torna o método em questão depreciado. Ele compila, conforme o amigo mencionou, porém não executa aquilo que eu gostaria que executasse. Aliás, usualmente tenho ese tipo de problema com a classe Utilities…

Marcelo_FS

De onde que é essa classe Utilities? A mais parecida que eu achei foi a ImageUtilities do NetBeans…

D

a classe pertence ao pacote org.openide.util

http://bits.nbextras.org/dev/javadoc/org-openide-util/org/openide/util/package-summary.html

Marcelo_FS

Você mesmo respondeu sua própria pergunta: ele foi depreciado pois não executa aquilo que você gostaria que executasse (possivelmente, entre outros motivos). Pra saber o porquê exato, pergunta lá no OpenIDE mesmo…

Se quiser se livrar do Warning e tentar resolver seu problema, é só seguir a documentação da classe:
“Deprecated. Use ImageUtilities.icon2Image(javax.swing.Icon).”

Criado 2 de janeiro de 2009
Ultima resposta 6 de jan. de 2009
Respostas 5
Participantes 3