Você está aqui: Java ::: Pacote java.awt ::: Graphics

Como desenhar polylines em um JPanel do Java Swing usando o método drawPolyline() da classe Graphics

Quantidade de visualizações: 641 vezes
Polylines, ou polilinhas, são sequências de pontos conectados por retas. Se os pontos inicial e final da polilinha estiverem conectados uns aos outros, estamos falando de um polígno.

Polylines são desenhadas em Java, mais especificamente na superfície de um controle visual (como JPanel), usando o método drawPolyline() da classe Graphics do pacote java.awt. Este método requer o vetor de coordenadas x, o vetor de coordenadas y e o tamanho de um dos vetores.

Veja um programa Java Swing completo no qual temos dois arrays de inteiros, um para os valores de x e outro para os valores de y. Em seguida fornecemos estes dois vetores para o método drawPolyline():

package estudos;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

class AreaDesenho extends JPanel {
  // construtor da classe
  public AreaDesenho(){
    // definimos a cor de fundo
    this.setBackground(Color.WHITE);
  }
  
  @Override
  public void paintComponent(Graphics graphics) {
    super.paintComponent(graphics);
    
    // vamos criar o vetor de coordenadas x
    int valores_x[] = {90, 390, 400, 220, 290, 30}; 
    // vamos criar o vetor de coordenadas y
    int valores_y[] = {40, 130, 380, 240, 410, 350};
    // e agora desenhamos as polilinhas
    graphics.drawPolyline(valores_x, valores_y, valores_x.length);
  }
}

// classe principal
public class Estudos extends JFrame{
  // construtor da classe
  public Estudos(){
    super("Gráficos em Java Swing");
      
    Container c = getContentPane();
    c.setLayout(new BorderLayout());
     
    // vamos adicionar o JPanel na tela principal
    AreaDesenho areaDesenho = new AreaDesenho();
    this.add(areaDesenho, BorderLayout.CENTER);
    this.setSize(600, 480);
     
    // vamos centralizar a janela na tela
    this.setLocationRelativeTo(null);
    // mostra a janela principal 
    this.setVisible(true);
  }
   
  public static void main(String args[]){
    SwingUtilities.invokeLater(() -> {
      Estudos app = new Estudos();
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }); 
  }
}

Ao executar este programa Java Swing nós teremos o seguinte resultado:



Note que, se um dos vetores for maior que o outro, o programa vai gerar um erro do tipo:

java.lang.ArrayIndexOutOfBoundsException: coordinate array length

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 36 usuários muito felizes estudando em nosso site.