Även om JavaFX språket innehåller ett verktyg för att enkelt skapa cirkeldiagram ger vanlig Java inga sådana enkla funktioner . Istället måste du designa din egen klass för att skapa cirkeldiagram med hjälp av Java . Nyckeln till uppgift kommer att vara Graphics2D klassen inbyggd i standard-Java AWT bibliotek
1 .
Skapa en ny klass . Om du använder en integrerad utvecklingsmiljö (IDE ) , klicka bara på "Fil ", " New Class. " Annars öppnar Anteckningar eller din text redaktör för val och spara filen som " PieChart. java . "
2 .
Importera biblioteken behöver du i ditt program från Java standardbiblioteket genom att klistra in följande :
import java. awt. Color ;
import java. awt. Graphics ;
import java. awt. Graphics2D ;
import java. awt . rektangel ,
import java. awt. geom. Rectangle2D ;
import java. util. ArrayList ;
import javax. swing. JFrame .
3
Klistra in följande för att skapa tårtdiagram klassen :
/**
* Ritar ett cirkeldiagram .
* /
public class tårtdiagram extends JFrame {
ArrayList
Rectangle2D rect ,
public void addSlice ( dubbel värde , färg färg )
public void draw ( Graphics2D g , Rectangle2D område )
public void init ( ) ;
@ Åsidosätt
public void paint ( Graphics g )
public static void main ( String [ ] args )
/**
* Detta är uppgifter för en del av kakan .
* /
privata klass PieSlice
}
Resten av handledning kommer att täcka fylla i koden för varje metod som beskrivs i ovanstående kod .
4 .
Genomföra PieSlice privata klassen . Detta kommer att hålla data för varje " slice " av cirkeldiagrammet. Klistra in följande kod :
privat klass PieSlice {
dubbla värdet ,
Color färg ,
/** *
den del av kakan.
* @ param värde Storleken på skiva .
* @ param färg Färgen önskas för segmentet
* /
offentliga PieSlice ( dubbel värde , färg färg ) {
this. color=färg .
detta . värde=värde ;
}
}
5
Genomföra addSlice metod genom att klistra in följande kod :
public void addSlice ( dubbel värde , färg färg ) {
slices. add ( ny PieSlice (värde , färg )) ; }
Det bara skapar en ny PieSlice och tillägger den till skiva listan ArrayList .
6
Genomföra init -metoden genom att klistra in följande : .
public void init () {
this. setSize ( 800. 600 ) ,
this. setVisible (true ) ;
rect=new Rectangle ( 100 , 100 , 600 , 480 ) ;
} .
7
Genomföra dra metod genom att klistra in följande kod :
public void draw ( Graphics2D g , Rectangle2D område ) {
dubbel pieSize=0 ;
för ( PieSlice slice : skivor ) {
pieSize +=slice. value ;
}
dubbel currentValue=0 ;
int startAngle=0 ;
int arcAngle=0 ;
för ( PieSlice slice : skivor ) {
startAngle=( int ) ( currentValue * 360 /pieSize ) ,
arcAngle=( int ) ( slice. värde * 360 /pieSize ) ,
//Om detta är den sista skiva , gör detta till att det finns några luckor
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 ;
}
}
Detta är en stor del av programmet . Den går igenom varje del av kakan diagram och ritar en färgad båge som motsvarar dess andel av kakan .
8 .
Genomföra metoden paint att tårtdiagram klassen kommer att få från JFrame superklass . Allt det gör är att ringa draw -metoden varje gång en uppdatering behövs :
@ Åsidosätt
public void paint ( Graphics g ) {
oavgjort ( ( Graphics2D ) this. getGraphics ( . ) rect ) ; }
9
Skapa en huvudsaklig metod för att testa klassen och se till att det fungerar :
offentliga void main ( String [ ] args ) {
tårtdiagram diagram=new tårtdiagram () ;
diagram . init ( ) ;
chart. addSlice (10 , Color. RED ) ,
chart. addSlice (7 , Color. BLUE ) ,
chart. addSlice ( 3 , Färg . GRÖN ) ,
chart. addSlice (15 , Color. ORANGE ) ,
}
Previous:nothing Next:Hur konvertera millisekunder till sekunder i Java