segunda-feira, 5 de abril de 2010

Um aplicativo simples de desenho em Java

Para começar.

Boa tarde a todos, este programa foi feito como um trabalho da minha faculdade. O objetivo era criar uma janela na qual aparece um centro de coordenadas X,Y e efetuar algumas operações básicas com algum polígono e seu centro de referência. Para interagir se usa o mouse, com menu pop-up ao clicar o botão direito e o esquerdo usado para operarar. O polígono é desenhado com um número de pontos entrados pelo usuário, e as operações como rotação, translação, redimensionamento e etc são selecionadas pelo menu e efetuadas usando o mouse.



Implementação.

Foram criadas 3 classes java para modelar o problema, sendo que uma delas foi uma classe de teste. É notável a melhora na qualidade de desenvolvimento percebida neste projeto usando Test Driven Development. Na verdade foi meu primeiro projeto usando esta metodologia, e eu usei o JUnit para fazer todos os testes, usando o famoso AssertEquals(Object o1,Object o2).

A primeira classe TrabalhoCG representa a janela onde ocorrem todas as operações, ela está aqui para download em formato .form e .java. O .form constitui a arrumação dos componentes da janela,pois eu uso o NetBeans no desenvolvimento de minhas aplicações e o recurso de formulários JFrame é muito útil para criar janelas. Há um JPanel canvas no qual é desenhado o polígono e aonde toda a mágica acontece. Na parte de baixo temos 2 labels indicando a operação sendo executada no momento. O pop-up menu está associado ao canvas, que possui um ActionListener tratando as interações de navegação. O controle de cliques é implementado usando MouseAdapter e o controle do mouse sendo arrastado no MouseMotionAdapter. 

Ainda nesta classe TrabalhoCG, existe uma classe interna MyPanel que reescreve o método paintComponent(Graphics g) para pintar o polígono e seu centro de referência na tela.

A classe polígono encapsula todas as operações de transformação e conversão de coordenadas do sistema de coordenadas Java com (0,0) no canto superior esquerdo para as coordenadas cartesianas com (0,0) no centro da tela.

Download das classes (mediafire.com):

PoligonoTest.java