Como desenhar um gráfico de pizza em java

Fazer gráficos de pizza como esta programação com Java.

Embora a linguagem JavaFX contém uma ferramenta para a criação fácil de gráficos de pizza, ordinário Java não fornece essa funcionalidade fácil. Em vez disso, você vai precisar para projetar sua própria classe para a criação de gráficos de pizza usando a linguagem Java. A chave para a tarefa será a classe Graphics2D construído na biblioteca Java AWT padrão.

  • Criar uma nova classe. Se você estiver usando um ambiente de desenvolvimento integrado (IDE), clique em "Arquivo", "New Class". Caso contrário, o bloco de notas aberto ou seu editor de texto de escolha e salve o arquivo como "PieChart.java."

  • Importar as bibliotecas que você terá em seu programa da biblioteca padrão Java, colando o seguinte:

    importação java.awt.Color
    IR
    java.awt.Graphics importação
    IR
    importação java.awt.Graphics2D
    IR
    importação java.awt.Rectangle
    IR
    importação java.awt.geom.Rectangle2D
    IR
    importação java.util.ArrayList
    IR
    importação javax.swing.JFrame;

  • Cole o seguinte para criar a classe PieChart:

    / **

    • Desenha um gráfico de pizza.
      * /
      classe pública PieChart estende JFrame {

      ArrayList fatias = new ArrayList()
      IR

      Rectangle2D rect
      IR

      addSlice public void (valor duplo, cor colorida)

      draw public void (Graphics2D g, área Rectangle2D)

      public void init ()
      IR

      @Sobrepor
      public void paint (Graphics g)

      void main (String [] args) public static

      / **

      • Isto representa os dados para uma fatia do bolo.
        * /
        PieSlice classe privada

    }

    O resto do tutorial irá cobrir o enchimento no código para cada método descrito no código acima.

  • Implementar a classe privada PieSlice. Isto irá manter os dados de cada "fatia" do gráfico de pizza. Cole o seguinte código:

    PieSlice classe privada {
    valor duplo

    IR

    cor

    IR

    / **
    * A fatia do bolo.
    * @param Value O tamanho da fatia.
    * @ Param colorir a cor desejada para a fatia.
    * /
    PieSlice público (valor duplo, cor Cor) {
    this.color = cor

    IR

    this.value = valor

    IR

    }

    }

  • Implementar o método addSlice colando o seguinte código:

    addSlice public void (valor duplo, cor Cor) {
    slices.add (nova PieSlice (valor, cor))

    IR

    }

    Isto apenas cria um novo PieSlice e adiciona-o à lista fatia ArrayList.

  • Implementar o método init colando o seguinte:

    # Nulo de 9 pública init () {

    this.setSize (800,600)

    IR

    this.setVisible (true)

    IR

    rect = new Rectangle (100, 100, 600, 480)

    IR

    } -
  • Implementar o método de sorteio, colando o seguinte código:

    draw public void (Graphics2D g, área Rectangle2D) {
    dupla pieSize = 0


    IR

    for (PieSlice fatia: Fatias) {
    pieSize + = slice.value

    IR

    }
    dupla CurrentValue = 0

    IR

    int = 0 startAngle

    IR

    int = 0 arcAngle

    IR

    for (PieSlice fatia: Fatias) {
    startAngle = (int) (CurrentValue * 360 / pieSize)

    IR

    arcAngle = (int) (slice.value * 360 / pieSize)

    IR

    // Se esta é a última fatia, fazer isso para garantir que não haja lacunas.
    Se (slice.equals (slices.get (slices.size () - 1))) {
    arcAngle = 360 - startAngle

    IR

    }

    g.setColor (slice.color)

    IR

     g.fillArc ((int) area.getMinX (), (int) area.getMinY (), (int) area.getWidth (), (int) area.getHeight (), startAngle, arcAngle)

    IR

     CurrentValue + = slice.value

    IR

    }

    }

    Este é o carro-chefe do programa. Ela passa por cada fatia do gráfico de pizza e desenha um arco colorido correspondente à sua percentagem do bolo.

  • Implementar o método de pintura que a classe PieChart vai começar a partir da superclasse JFrame. Tudo que faz é chamar o método de sorteio de cada vez é necessária uma atualização:

    @Sobrepor
    public void paint (Graphics g) {
    desenhar ((Graphics2D) this.getGraphics (), rect)

    IR

    }
  • Crie um método principal para testar a classe e garantir que ele funciona:

    main (String [] args) public static void {

    PieChart gráfico = new PieChart ()

    IR

    chart.init ()

    IR

    chart.addSlice (10, Color.RED)

    IR

    chart.addSlice (7, Color.BLUE)

    IR

    chart.addSlice (3, Color.GREEN)

    IR

    chart.addSlice (15, Color.ORANGE)

    IR

    }
De esta maneira? Compartilhar em redes sociais:

LiveInternet