( ) ; Rectangle2D rect
;
public void addSlice
( dubbele waarde , kleur kleur ) op Twitter
public void draw ( Graphics2D g, Rectangle2D gebied )
public void
init ( ) ;
@ Overridepublic void paint ( Graphics g ) op
public static void main ( String [ ] args )
/***
Dit vertegenwoordigt de gegevens voor een deel van de taart * /private class PieSlice
}
de rest van de tutorial wil. bestrijken het invullen van de code voor elke methode in de bovenstaande code beschreven .
4
Implementeren van de PieSlice private klasse . Dit zal de data voor elke " stukje " van het cirkeldiagram te houden . Plak de volgende code : . .
Private class PieSlice
{ dubbele waarde ; Kleur kleur ;
/*** Het deel van de taart * @ param waarde
De grootte van het schijfje * @ param kleur de kleur gewenst voor de slice * /public PieSlice ( dubbele waarde , kleur kleur ) { this.color = kleur ; this.value = value ; } .
}
5
implementeren van de addSlice methode door de volgende code te plakken :
public void addSlice
( dubbele waarde , kleur kleur ) { slices.add (nieuw PieSlice ( waarde , kleur ) ) ; }
Dit zorgt gewoon voor een nieuwe PieSlice en voegt deze toe aan de slice lijst ArrayList
6
Implementeren van de init -methode door de volgende plakken : .
public void
init ( ) {
dit . setSize ( 800600 ) ; this.setVisible (true ) ; rect = new Rectangle ( 100 , 100 , 600 , 480 ) ;
} ;
7
Implementeer de loting methode { pieSize + = slice.value ; } dubbele CurrentValue = 0 ; int startAngle : want ( schijfjes PieSlice slice )
public void draw
( Graphics2D g, Rectangle2D gebied ) { double pieSize = 0 : de volgende code plakken = 0 ; int arcAngle = 0 , want ( PieSlice slice : plakken ) { startAngle = ( int ) ( CurrentValue * 360 /pieSize ) ; arcAngle = ( int ) ( slice.value * 360 /pieSize ) ;
//Als dit het laatste stukje , dit te doen om ervoor te zorgen is er geen 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 ; } }
genealogie Dit is het werkpaard van het programma . Gaat het door elk segment van het cirkeldiagram en trekt een gekleurde boog overeenkomt met het percentage van de taart .
8
Implementeer de methode paint die de PieChart klasse zal krijgen van de JFrame superklasse . Alles wat het doet is bellen de loting methode elke keer een refresh nodig :
@ Overridepublic void paint ( Graphics g ) { tekenen ( ( Graphics2D ) this.getGraphics ( ) , rect ) ; }
< br > 9
Maak een belangrijke methode om de klasse te testen en ervoor te zorgen het werkt :
public static void main ( String [ ] args ) op { PieChart chart = new PieChart ( ) ; chart.init ( ) ; < br
chart.addSlice > ( 10 , Color.red ) ; chart.addSlice ( 7 color.blue ) ; chart.addSlice ( 3 Color.GREEN ) ; chart.addSlice ( 15 , Color.ORANGE ) < br
}
>