Desenhando em Java2D usando o Netbeans: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Emerson (discussão | contribs)
Emerson (discussão | contribs)
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 13: Linha 13:
==Criando um projeto Java==
==Criando um projeto Java==
[[Imagem:J2d1.png|721px]]
[[Imagem:J2d1.png|721px]]
*Desmarque a opção "criar classe principal"


[[Imagem:J2d2.png|721px]]
[[Imagem:J2d2.png|721px]]


==Criando um formulário JFrame==
==Criando um formulário JFrame==
* Clique com o botão direito sobre "Pacotes de código fonte" e escolha a opção "Novo -> Formulário JFrame"
[[Imagem:J2d3.png|721px]]
[[Imagem:J2d3.png|721px]]
* No campo '''Nome da classe''' coloque "Principal"
* No campo '''pacote''' coloque o nome "grafico"


[[Imagem:J2d4.png|721px]]
[[Imagem:J2d4.png|721px]]
Linha 35: Linha 42:


[[Imagem:J2d6.png|721px]]
[[Imagem:J2d6.png|721px]]
* No campo '''Nome da classe''' coloque o nome "Painel"


[[Imagem:J2d7.png|721px]]
[[Imagem:J2d7.png|721px]]

Edição atual tal como às 19h51min de 6 de maio de 2010

1 Criando uma aplicação Java2D usando o Netbeans

Com o Netbeans é possível desenhar aplicações gráficas em Java de uma forma rápida e simples. Basta clicar e arrastar componentes para um formulário. Contudo, o Netbeans não fornece uma interface tão intuitiva para desenhar usando a API do Java2D, mas é possível combinarmos as facilidades trazidas pelo Netbeans para montar janelas com botões, caixas de texto, etc. e usarmos um pouco de código por baixo para criarmos um painel que permita fazer desenhos em Java2D.

As figuras abaixo ilustram os passos necessários para combinar o poder do Netbeans com a API Java2D para desenhar dois simples quadrados e um frase. O formulário terá os seguintes componentes:

  • Um JPanel
  • Dois JButton
    • Um para desenhar os quadrados
    • Um para limpar o JPanel

O código fonte com o projeto desenvolvido nesta página pode ser obtido aqui.

1.1 Criando um projeto Java

  • Desmarque a opção "criar classe principal"

1.2 Criando um formulário JFrame

  • Clique com o botão direito sobre "Pacotes de código fonte" e escolha a opção "Novo -> Formulário JFrame"

  • No campo Nome da classe coloque "Principal"
  • No campo pacote coloque o nome "grafico"

1.3 Adicionando um JPanel no formulário

Clique no componente JPanel, presente na Paleta "Contêiners Swing" e arraste para o fomulário. Altere as dimensões deste JPanel de forma que este ocupe toda a largura do formulário. Altere a altura deste JPanel mas reserve um espaço na parte de baixo do formulário para depois incluirmos dois botões.

1.4 Criando uma classe Painel, subclasse de JPanel

Iremos mudar o comportamento do nosso JPanel adicionado no passo anterior. Para isso será criada uma classe Painel que é uma subclasse de JPanel. As modificações desta classe, em relação a superclasse, são:

  • No construtor a cor de fundo do painel é mudada para branco.
  • Sobrescrita do método paint da superclasse
    • Será desenhada uma frase no JPanel sempre que este método for invocado
  • Adição do método desenharQuadrado
    • Irá desenhar um quadrado sem preenchimento e um quadrado preenchido com a cor vermelha

  • No campo Nome da classe coloque o nome "Painel"

  • Note a palavra extends na linha 8 da figura abaixo, indicando uma relação de herança entre Painel e JPanel

1.5 Personalizando o código gerado pelo Netbeans

Ao inserirmos um JPanel no formulário Principal, o Netbeans criou um atributo na classe Principal do tipo JPanel e colocou a respectiva linha para a criação de um objeto desta classe.

Neste passo iremos substituir a linha referência a criação deste objeto. Faremos com que no atributo do tipo JPanel seja armazenada uma instância de um objeto da nossa classe Painel. Isto é possível pois objetos de Painel são também JPanel (conceito de herança).

  • A instrução "new javax.swing.JPanel()" da figura abaixo será substituída por "new Painel()"
  • Clique na caixa de seleção na esquerda, onde está escrito "código padrão" e selecione "criação personalizada"

  • Faça a alteração na linha para que fique igual à figura abaixo

1.6 Adicionando eventos nos botões

A figura abaixo ilustra como adicionar um tratador para o evento de acionamento do botão. Clique com botão direito do mouse sobre o botão jBDesenhar e selecione Eventos-> Action -> actionPerformed.

1.7 Adicionando código nas ações dos botões

Na figura abaixo é apresentado o código que foi inserido no evento actionPerformed de cada botão

  • JBDesenhar
    • Ao clicar neste botão o método desenharQuadrado, especificado na classe Painel, será invocado
  • JBLimpar
    • Ao clicar neste botão o método repaint(), herdado da superclasse JPanel, será invocado
    • Por consequência o método paint() da classe Painel será invocado, já que este método foi sobrescrito

1.8 Interface da aplicação desenvolvida