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 ()
IRRectangle2D rect
IRaddSlice 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
- Isto representa os dados para uma fatia do bolo.
}
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 duploIR
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 = corIR
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 = 0IR
for (PieSlice fatia: Fatias) {
pieSize + = slice.valueIR
}
dupla CurrentValue = 0IR
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 - startAngleIR
}
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
}