Desenhando em Java2D usando o Netbeans
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
1.2 Criando um formulário JFrame
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
- 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 tratar o evento para quando um botão for pressionado
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