();
Rectangle2D rect ;
addSlice public void ( valor duplo , cor Cor )
empate public void ( Graphics2D g, área Rectangle2D )
public void init () ;
@ Overridepublic void paint (Graphics g )
public static void main ( string [] args )
/*** Este representa os dados para uma fatia do bolo. * /class private PieSlice
}
o resto do tutorial cobrir o preenchimento do código para cada método descrito no código acima .
4
Implementar a classe privada PieSlice . Isto irá manter os dados de cada " fatia " do gráfico de pizza . Cole o seguinte código :
classe privada PieSlice {value duplo; cor cores ;
/*** A fatia do bolo * @ param valor O tamanho da fatia * @ param . . colorir a cor desejada para a fatia * /PieSlice público ( valor duplo , cor cor ) { this.color = cor ; this.value = valor ;} .
}
5
Implemente o método addSlice colando o seguinte código:
addSlice public void ( valor duplo , cor cor ) { slices.add ( novo PieSlice (valor, cor) );}
Isso só cria um novo PieSlice e adiciona à lista fatia ArrayList
6
Implementar o método init , colando o seguinte : .
public void init () {
esta . setSize ( 800,600 ); this.setVisible (true); rect = new Rectangle (100, 100 , 600, 480) ;
};
7
Implemente o método empate por colar o seguinte código:
empate public void ( Graphics2D g, área Rectangle2D ) {double pieSize = 0 , pois ( PieSlice fatia : fatias) { pieSize + = slice.value ;} double currentValue = 0; int startAngle = 0; int arcAngle = 0 , pois ( PieSlice fatia : fatias) { startAngle = ( int ) ( currentValue * 360 /pieSize ) ; arcAngle = ( int ) ( slice.value * 360 /pieSize );
//Se esta é a última fatia , fazer isso para garantir que não haja gaps.if ( slice.equals ( slices.get ( slices.size () -1) )) { arcAngle = 360 - startAngle ;}
g.setColor ( slice.color ); g.fillArc ( (int) area.getMinX () , (int) area.getMinY () , (int) area.getWidth () , (int) area.getHeight () , startAngle , arcAngle ); currentValue + = slice.value ;} }
Este é o carro-chefe do programa. Ela passa por cada fatia do gráfico de pizza e desenha um arco de cor correspondente ao seu percentual do bolo.
8
Implemente 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 cada vez que uma atualização é necessária :
@ Overridepublic void paint (Graphics g ) { desenhar ( ( Graphics2D ) this.getGraphics ( ) , Rect) ;}
< br > 9
Criar um método main para testar a classe e garantir que ele funciona:
void main ( string [ ] args ) { public static gráfico PieChart = new PieChart (); chart.init ();
chart.addSlice (10, Color.RED ); chart.addSlice (7, Color.BLUE ); chart.addSlice (3, Color.GREEN ); chart.addSlice (15, Color.ORANGE );
}