Pessoal, necessito fazer uma aplicação em que consiste em ter uma janela com uma determinada figura e sobre ela eu ter a possibilidade de dar um click com o mouse (em qualquer área dessa figura) onde irá formar um ponto e depois um segundo click onde será formada uma figura gráfica (linha, elipse, meio ciculo, etc) entre os dois pontos. Como posso estar realizando isso via desktop ou web?
Algum tempo atrás fiz uma aplicação acadêmica que tinha o praticamente o mesmo comportamento do que você está buscando.
Era um “Paint”, que permitia desenhar figuras (linha, ponto, retângulo e círculo), a partir da escolha de pontos na tela.
Tenho o codigo comigo ainda, me passa seu email que te envio, acho um pouco grande para postar aqui.
Lembro-me que foi usado algo assim: Um GraphicModel que desenha qualquer figura, uma classe Figura e alguns objetos que estendem de figura.
Espero ajudar
fredferrao
cara eu fiz isso, lendo um livro, acho que o Deitel, mas ta la em casa, amanha vou ver se trago o exemplo. Neste exemplo vc clica e arrasta e vai desenhando a elipse e etc…
V
vnsnunes
Fala kozak, tb consegui fazer uma aplicação parecida com o Paint, mas soh consigo desenhar na “mão”, se puder me enviar seu código pra eu analizar vai ser de grande ajuda. Valeu pela ajuda tb Fred se puder postar o codigo aki vai ser de grande ajuda tb, se for muito grande envie pro meu e-mail (meunick)@gmail…
:thumbup:
fredferrao
cara esqueci de pegar o exemplo la em casa, mas fiz um ± aqui:
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/** * * @author Administrador */publicclassPintandoextendsJFrame{privateintx,x1,y,y1;/** Creates a new instance of Pintando */publicPintando(){addMouseMotionListener(newMouseMotionAdapter(){publicvoidmouseDragged(MouseEvente){x1=e.getX();y1=e.getY();repaint();}});addMouseListener(newMouseAdapter(){publicvoidmousePressed(MouseEvente){x=e.getX();y=e.getY();}publicvoidmouseReleased(MouseEvente){x1=e.getX();y1=e.getY();repaint();}});setBackground(Color.yellow);setSize(400,300);setVisible(true);}publicvoidpaint(Graphicsg){super.paint(g);g.fillOval(x,y,x1-x,y1-y);}publicstaticvoidmain(Stringargs[]){Pintandoapp=newPintando();app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}
K
kozak
vnsnunes,
Ia te passar o código na hora do almoço, pois tenho q pegar o codigo em casa, mas pelo que estou vendo é a mesma coisa que o fredferrao postou, acredito que com o exemplo dele vc faz tranquilo!
Show de bola fredferrao
V
vnsnunes
Valeuw :thumbup: pessoALL com esse modelo dá pra eu fazer uma “brincadeira” com minha aplicação!