Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
gadelhas

Desenhar Linha, ou circulo...

Recommended Posts

gadelhas

Viva;

Alguem me indica se possível como desenhar uma linha numa Desktop Application do NetBeans.

Tipo carregar num botão e desenhar uma linha ou um circulo.

Já importei a class Graphics, mas não tou a conseguir.

Obrigado


Abraço Gadelhas

Share this post


Link to post
Share on other sites
Knitter

Precisas de uma área para desenhar, e se estás a usar uma Desktop Application criada com o NetBeans IDE pode ser mais complicado já que estás a usar a Swing Application Framework.

Não sabendo o que tens agora é mais difícil encontrar uma solução mas o mais fácil será criares uma classe que estenda de JPanel, e redefinires o método paintComponent. Nesse método convertes a variável Graphics para um Graphics2D, que é o tipo real que é passado ao método, e usas os métodos drawXXX para desenhar linhas, círculos e o que precisares.

Este tutorial, http://wiki.portugal-a-programar.org/java:jpanel_imagem_fundo , pode servir de base já que o princípio é o mesmo, em vez de desenhares uma imagem, usas os métodos para linhas ou outras formas geométricas.

Share this post


Link to post
Share on other sites
gadelhas

Viva;

Obrigado pela resposta ao tópico. Contudo não cheguei lá, tou mesmo nos inicios dos inicios de java.

Na minha classe tenho isto;

package quickroute;

import java.awt.Graphics;

import java.awt.Color;

import javax.swing.JPanel;

public class JDesenho extends JPanel{

        int xi;

        int yi;

        int xf;

        int yf;

    public JDesenho(int xinicial, int yinicial,int xfinal, int yfinal){

        xi=xinicial;

        yi=yinicial;

        xf=xfinal;

        yf=yfinal;

    }

    public void paint(Graphics g) {

        g.setColor(Color.green);

        g.fillRect(5, 60, 180, 20);

    }

}

A ideia era depois, carregar num botao e passar as coordenadas para o construtor e desenhar o rectangulo, mas népias.

O código que tenho no botaõ é este, mas dá erro;

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                       

      JDesenho g = new JDesenho(0,0,45,45);

        g.paint(null);

    } 

Alguma possibilidade de ajuda adicional?

Obrigado.


Abraço Gadelhas

Share this post


Link to post
Share on other sites
Knitter

O método paint não é para ser invocado directamente desse modo, e além disso, se estás a passar um null para dentro do método como é que esperas que seja possível invocar métodos na variável g?

Vê o tutorial que está na wiki, tenta repetir o que lá está, adaptar ao que tens é tão simples como retirar o drawImage e substituir por um método equivalente.

Share this post


Link to post
Share on other sites
gadelhas

Viva;

Tentei e já consigo desenhar uma linha, mas não através de um botão, ou seja apenas subtitui o drawimage pelo drawline, e mal o programa arranca a linha aparece.


Abraço Gadelhas

Share this post


Link to post
Share on other sites
Knitter

O que o botão vai fazer é controlar uma ou mais variáveis que dizem se é para desenhar ou não. O botão não vai invocar nenhum método de desenho senão, dado que os componentes são desenhados várias vezes por segundo, nem vias a linha a aparecer.

Tens de criar uma forma de saber se existem formas para desenhar controlada através do botão.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.