// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Tratando Imagens em uma Aplicação Java GUI
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Tratando Imagens em uma Aplicação Java GUI - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Tratando Imagens em uma Aplicação Java GUI


image::images/netbeans-stamp-80-74.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.4 e 8.0"]


*Para concluir este tutorial, você precisa dos seguintes recursos e softwares.*

|===
|Software ou Recurso |Versão Necessária 

|link:http://netbeans.org/downloads/[+NetBeans IDE+] |Versão 7.4 ou 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |Versão 6, 7 ou 8 
|===


== Introdução

O tratamento de imagens em uma aplicação é um problema comum para muitos programadores iniciantes em Java. A forma padrão de acessar as imagens em uma aplicação Java é por meio do método `link:http://download.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String)[+getResource()+]`. Este tutorial mostra como usar o GUI Builder do IDE para gerar o código a fim de que inclua imagens (e outros recursos) em sua aplicação. Além disso, você aprenderá como personalizar a forma na qual o IDE gera o código de tratamento de imagens.

A aplicação resultante deste tutorial será um JFrame simples que contém um JLabel que exibe uma única imagem.


== Criando a Aplicação

1. Escolha Arquivo > Novo Projeto.
2. No assistente Novo Projeto, selecione Java > Aplicação Java e clique em Próximo.
3. Em Nome do Projeto, digite `ImageDisplayApp`.
4. Desmarque a caixa de seleção Criar Classe Principal.

[.feature]
--
image::images/newproj-small.png[role="left", link="images/newproj.png"]
--



. Clique em Finalizar.


== Criando o Form da Aplicação

Nesta seção, você cria o form JFrame e adiciona um JLabel ao form.

*Para criar o form JFrame:*

1. Na janela Projetos, expanda o nó  ``ImageDisplayApp`` .
2. Clique com o botão direito do mouse no nó Pacotes de Código-fonte e escolha Novo > Form JFrame.
3. Em Nome da Classe, digite `ImageDisplay`.
4. Em Nome do Pacote, digite `org.me.myimageapp`.
5. Clique em Finalizar.

*Para adicionar o JLabel:*

* Na Paleta, selecione o componente Label e arraste-o para o JFrame.

Até este momento, o form deve ser semelhante à seguinte imagem:

[.feature]
--
image::images/form-small.png[role="left", link="images/form.png"]
--


== Adicionando um Pacote na Imagem

Ao usar imagens ou outros recursos em uma aplicação, normalmente você cria um pacote Java separado para os recursos. No seu sistema de arquivos local, um pacote corresponde a uma pasta.

*Para criar um pacote para a imagem:*

1. Na janela Projetos, clique com o botão direito do mouse no nó `org.me.myimageapp` e escolha Novo > Pacote Java.

[.feature]
--
image::images/package-small.png[role="left", link="images/package.png"]
--



. Clique em Finalizar.

Na janela Projetos, você deve ver um novo pacote que aparece na pasta `Pacotes do Código-fonte`.

image::images/project-with-imagepack.png[]


== Exibindo a Imagem no Label

Nesta aplicação, a imagem será incorporada em um componente JLabel.

*Para adicionar a imagem ao label:*

1. No Designer de GUI, selecione o label que adicionou ao seu form.
2. Na janela Propriedades, clique na categoria Propriedades e role até a propriedade do ícone.
3. Clique no botão de reticências (...).
O editor de propriedades do ícone é exibido.

[.feature]
--
image::images/importimage-small.png[role="left", link="images/importimage.png"]
--



. Na caixa de diálogo da propriedade do ícone, clique em Importar para o Projeto.


. Na seletor de arquivos, vá até qualquer imagem que esteja em seu sistema que você queira usar. Em seguida, clique em Próximo.


. Na página Selecionar pasta de destino do assistente, selecione a pasta `newpackage` e clique em Finalizar.

[.feature]
--
image::images/targetfolder-small.png[role="left", link="images/targetfolder.png"]
--



. Clique em OK para fechar a caixa de diálogo de propriedade do ícone.

Após clicar em OK, o IDE faz o seguinte:

* Copia a imagem para seu projeto. Portanto, quando você constrói e distribui a aplicação, a imagem é incluída no arquivo JAR distribuível.
* Gera o código na classe ImageDisplay para acessar a imagem.
* Exibe a sua imagem no label na view Design do seu form.

[.feature]
--
image::images/label-added-small.png[role="left", link="images/label-added.png"]
--

Neste momento, você pode realizar alguns procedimentos simples para melhorar a aparência do form, como:

* Na janela Propriedades, selecione a propriedade `text` e delete `jLabel1`. Tal valor foi gerado pelo GUI Builder para exibir o texto do label. No entanto, você está usando o label para exibir uma imagem em vez do texto, de modo que o texto não seja necessário.
* Arraste o `jLabel1` para o centro do form.

[.feature]
--
image::images/centered-small.png[role="left", link="images/centered.png"]
--

*Para exibir o código gerado:*

1. No Designer do GUI, clique no botão Código-fonte. (Selecione Exibir > Barra de Ferramentas Editor de Código-fonte do menu principal se o botão Código-fonte estiver oculto.)
2. Role até linha que diz Código Gerado.
3. Clique no sinal de mais (+) à esquerda da linha Código Gerado para exibir o código que o Designer de GUI gerou.

A linha-chave é a seguinte:


[source,java]
----

jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/me/myimageapp/newpackage/image.png"))); // NOI18N
----

Visto que você usou o editor de propriedades da propriedade do `Ícone` do `jLabel1`, o IDE gerou o método `setIcon`. O parâmetro de tal método contém uma chamada ao método `link:http://download.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String)[+getResource()+]` em uma classe anônima interna de `ImageIcon`. Observe que o caminho gerado da imagem correspondente à sua localização na estrutura de pacote da aplicação.

*Observações:*

* Se você usar a opção Imagem Externa no editor de propriedades do ícone, o IDE gerará um caminho absoluto para a imagem em vez de copiar a imagem no seu projeto. Portanto, a imagem seria exibida ao executar a aplicação no sistema, mas possivelmente não seria exibida ao executar a aplicação em outro sistema.
* O método `getResource` também é útil para acessar outros tipos de recursos, como arquivos de texto que contêm dados que a aplicação talvez precise usar.

*Para registrar handlers de evento para eventos do mouse no JLabel:*

Na View Design, clique com o botão direito do mouse em JLabel e escolha Eventos > Mouse > mouseClicked/mousePressed/mouseReleased no menu pop-up.
Um handler de evento é gerado para o evento correspondente.

*Observação:* você pode obter coordenadas do mouse (por exemplo, a localização de um clique do mouse) no handler de evento usando os métodos `event.getPoint()`, `event.getX()` ou `event.getY()`. Consulte link:http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/event/MouseEvent.html[+Classe MouseEvent+] para obter detalhes.


== Exibindo a imagem como Plano de Fundo no Quadro

Não há nenhum suporte direto para uma imagem de segundo plano do JFrame no GUI Builder, já que não há nenhum suporte direto para uma imagem de segundo plano do JFrame no Swing.
De qualquer forma, há diversas formas indiretas de atingir tal objetivo. Nesta aplicação, o JLabel com a imagem será embutido dentro do componente JFrame, enquanto que um JPanel transparente será colocado sobre o JLabel e usado como o principal de todos os componentes.

*Para adicionar um JPanel transparente na JFrame com a imagem:*

1. Escolha Arquivo > Novo Projeto.
2. No assistente Novo Projeto, selecione Java > Aplicação Java e clique em Próximo.
3. Em Nome do Projeto, digite `BackgroundImageApp`.
4. Desmarque a caixa de seleção Criar Classe Principal.

[.feature]
--
image::images/prj-small.png[role="left", link="images/prj.png"]
--



. Clique em Finalizar.


. Na janela Projetos, expanda o nó `BackgroundImageApp`.


. Clique com o botão direito do mouse no nó Pacotes de Código-fonte e escolha Novo > Form JFrame.


. Em Nome da Classe, digite `ImageDisplay`.


. Em Nome do Pacote, digite `org.me.mybackgroundapp`.

[.feature]
--
image::images/newjframe-small.png[role="left", link="images/newjframe.png"]
--



. Clique em Finalizar.


. Na view Design, clique com o botão direito do mouse em JFrame e selecione Definir Layout > Layout do Conjunto de Grades no menu pop-up.


. Clique com o botão direito do mouse em JFrame e selecione Adicionar da Paleta > Contêineres Swing > Painel no menu pop-up.


. Na janela Propriedades, desmarque a propriedade `opaque` do jPanel.


. Clique com o botão direito do mouse em JFrame e selecione Adicionar da Paleta > Controles do Swing > Label no menu pop-up.


. Na janela Projetos, clique com o botão direito do mouse no nó `org.me.mybackgroundapp` e escolha Novo > Pacote Java.


. Clique em Finalizar. Um novo pacote é adicionado.


. No Designer de GUI, selecione o label que adicionou ao seu form.


. Na janela Propriedades, clique na categoria Propriedades e role até a propriedade do ícone.


. Clique no botão de reticências (...).


. Na caixa de diálogo da propriedade do ícone, clique em Importar para o Projeto.


. Na seletor de arquivos, vá até qualquer imagem que esteja em seu sistema que você queira usar. Em seguida, clique em Próximo.


. Na página Selecionar Pasta de Destino do assistente, selecione a pasta de recursos `newpackage` e clique em Finalizar.

[.feature]
--
image::images/targetfolder-small.png[role="left", link="images/targetfolder.png"]
--



. Clique em OK para fechar a caixa de diálogo de propriedade do ícone.


. No navegador, clique com o botão direito do mouse em jPanel e escolha Propriedades no menu pop-up.


. Na caixa de dialogo Propriedades, defina as propriedades `Grid X`, `Grid Y`, `Weight X` e `Weight Y` como `1` e a propriedade `Fill` como `Both`.

[.feature]
--
image::images/panelprops-small.png[role="left", link="images/panelprops.png"]
--



. Clique em Fechar.


. Repita as etapas 24 e 25 para o jLabel.


. Na caixa de diálogo Propriedades, selecione a propriedade `text` e delete `jLabel1`.

[.feature]
--
image::images/labelprops-small.png[role="left", link="images/labelprops.png"]
--

O segundo plano está pronto. Agora você pode arrastar um jLabel e um jTextField ao jPanel a partir da Paleta, por exemplo. Ambos serão exibidos sobre a imagem de segundo plano.

image::images/background.png[]

*Observação:* a vantagem da solução descrita é que a imagem de segundo plano é mostrada no período do projeto e no runtime.


== Construindo e Executando a Aplicação

Agora que gerou o código para acessar e exibir a imagem, você pode construir e executar a aplicação para certificar-se de que a imagem está sendo acessada.

Você precisa, primeiro, definir a classe principal do projeto. Quando você define a classe principal, o IDE sabe quais classes executar quando o projeto é executado. Além disso, isso garante que o elemento `Main-Class` no arquivo JAR do projeto seja gerado quando você construir a aplicação.

*Para definir a classe principal do projeto:*

1. Clique com o botão direito do mouse no nó do projeto ImageDisplayApp e escolha Propriedades.
2. Na caixa de diálogo Propriedades do projeto, selecione a categoria Executar.
3. Clique no botão Procurar ao lado do campo Classe Principal. Depois selecione a classe `org.me.myimageapp.ImageDisplay`.

[.feature]
--
image::images/mainclass-small.png[role="left", link="images/mainclass.png"]
--



. Clique no botão Selecionar Classe Principal.


. Clique em OK para fechar a caixa de diálogo Propriedades do Projeto.

*Para construir o projeto:*

* Escolha Executar > Limpar &amp; Criar Projeto (_project_name_) na barra de ferramentas principal.

Você pode exibir os produtos construídos da aplicação na janela Arquivos. A pasta `build` contém a classe compilada. A pasta `dist` contém um arquivo JAR executável que contém a classe compilada e a imagem.

image::images/files.png[]

*Para executar o projeto:*

* Escolha Executar > Executar Projeto (_project_name_) na barra de ferramentas principal.


== Criando Código Personalizado

Em muitas aplicações, a imagem exibida não é determinada estaticamente como neste exemplo. Por exemplo, a imagem a ser exibida pode ser determinada por algo no qual o usuário clica.

Se precisar escolher a imagem a ser exibida programaticamente, você pode escrever seu próprio código personalizado para acessar e exibir recursos. O IDE impede que você escreva o código diretamente nos "blocos protegidos" da view Código-fonte que contém o código gerado pelo GUI Builder. No entanto, você pode inserir o código nos blocos protegidos usando os editores de propriedades que podem ser acessados na janela Propriedades. Ao usar os editores de propriedades desta forma, você garante que o código personalizado não se perda ao fazer alterações de design no GUI Builder.

*Por exemplo, para escrever o código personalizado de uma propriedade `icon` do JLabel:*

1. Selecione JLabel na View Design ou na janela Navegador.
2. Na janela Propriedades, clique no botão de reticências (...) ao lado da propriedade `icon`.
3. Na lista drop-down da parte superior da caixa de diálogo, selecione a opção Código Personalizado.

[.feature]
--
image:images/custom-code-small.png[role="left", link="images/custom-code.png"]
--

A opção Código Personalizado deste editor de propriedades permite que você mesmo preencha o parâmetro do método `setIcon`. Você pode preencher este parâmetro com a lógica necessária ou com uma chamada a um método diferente que você escreveu em outro lugar na classe.

[.feature]
--
image::images/custom-view-small.png[role="left", link="images/custom-view.png"]
--


== Resumo

Este tutorial mostrou como acessar imagens de uma aplicação que você criou no NetBeans IDE. O tratamento de imagens é abordado posteriormente no Tutorial do Java.

*Observação: *o exemplo oferecido neste tutorial é muito semelhante ao primeiro exemplo na link:http://java.sun.com/docs/books/tutorial/uiswing/components/icon.html[+seção Como Usar Ícones+] do Tutorial do Java. A diferença é que o código gerado neste tutorial usa o método `link:http://download.oracle.com/javase/6/docs/api/javax/swing/JLabel.html#setIcon(javax.swing.Icon)[+setIcon+]` do `link:http://download.oracle.com/javase/6/docs/api/javax/swing/JLabel.html[+JLabel+]` para aplicar o ícone no label. No exemplo do Tutorial do Java, o ícone é aplicado no label ao ser passado pelo seu construtor.

link:/about/contact_form.html?to=3&subject=Feedback:%20Handling%20Images%20in%20a%20GUI%20Application[+Enviar Feedback neste Tutorial+]



== Consulte Também

* link:gui-functionality.html[+Introdução à Construção de GUIs+]
* link:quickstart-gui.html[+Projetando uma GUI Swing no NetBeans IDE+]
* link:../../trails/matisse.html[+Trilha de Aprendizado das Aplicações de GUI do Java+]
* link:../../trails/java-se.html[+Trilha de Aprendizado do Desenvolvimento Geral em Java+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#GUI_Editor_.28Matisse.29[+GUI Builder - Perguntas Frequentes+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG920[+Implementando GUIs de Java+] em _Desenvolvendo Aplicações com o NetBeans IDE_
