2014-02-18 6 views
0

이 질문은 소프트웨어 디자인과 관련이 있습니다. 이 막대 차트를 업데이트하는 데 사용할 수있는 API를 만들고 싶습니다.막대 차트에 API를 사용하여 데이터를 삽입하는 방법

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.chart.BarChart; 
import javafx.scene.chart.CategoryAxis; 
import javafx.scene.chart.NumberAxis; 
import javafx.scene.chart.XYChart; 
import javafx.stage.Stage; 

public class MainApp extends Application 
{ 


    XYChart.Series series1 = new XYChart.Series(); 
    XYChart.Series series2 = new XYChart.Series(); 
    XYChart.Series series3 = new XYChart.Series(); 

    @Override 
    public void start(Stage stage) 
    { 

     setUserAgentStylesheet(STYLESHEET_CASPIAN); 

     stage.setTitle("Bar Chart Sample"); 
     final CategoryAxis xAxis = new CategoryAxis(); 
     final NumberAxis yAxis = new NumberAxis(); 
     final BarChart<String, Number> bc = new BarChart<String, Number>(xAxis, yAxis); 
     bc.setTitle("Country Summary"); 
     xAxis.setLabel("Country"); 
     yAxis.setLabel("Value"); 

     series1.setName("2003"); 
//  series1.getData().add(new XYChart.Data(austria, 25601.34)); 
//  series1.getData().add(new XYChart.Data(brazil, 20148.82)); 
//  series1.getData().add(new XYChart.Data(france, 10000)); 
//  series1.getData().add(new XYChart.Data(italy, 35407.15)); 
//  series1.getData().add(new XYChart.Data(usa, 12000)); 

     series2.setName("2004"); 
//  series2.getData().add(new XYChart.Data(austria, 57401.85)); 
//  series2.getData().add(new XYChart.Data(brazil, 41941.19)); 
//  series2.getData().add(new XYChart.Data(france, 45263.37)); 
//  series2.getData().add(new XYChart.Data(italy, 117320.16)); 
//  series2.getData().add(new XYChart.Data(usa, 14845.27)); 

     series3.setName("2005"); 
//  series3.getData().add(new XYChart.Data(austria, 45000.65)); 
//  series3.getData().add(new XYChart.Data(brazil, 44835.76)); 
//  series3.getData().add(new XYChart.Data(france, 18722.18)); 
//  series3.getData().add(new XYChart.Data(italy, 17557.31)); 
//  series3.getData().add(new XYChart.Data(usa, 92633.68)); 

     AddBarChartDataSeriesOne("Europe", 23); 
     AddBarChartDataSeriesTwo("Asia", 33); 
     AddBarChartDataSeriesThree("America", 44); 

     Scene scene = new Scene(bc, 800, 600); 
     bc.getData().addAll(series1, series2, series3); 
     stage.setScene(scene); 
     stage.show(); 
    } 

    public void AddBarChartDataSeriesOne(String Name, float value) 
    { 
     series1.getData().add(new XYChart.Data(Name, value)); 
    } 

    public void AddBarChartDataSeriesTwo(String Name, float value) 
    { 
     series2.getData().add(new XYChart.Data(Name, value)); 
    } 

    public void AddBarChartDataSeriesThree(String Name, float value) 
    { 
     series3.getData().add(new XYChart.Data(Name, value)); 
    } 

    public static void main(String[] args) 
    { 
     launch(args); 
    } 
} 

당신은 내가 제대로 된 일련의 데이터를 설정할 수 없습니다 나는이 API를 사용하고 때이 막대 차트 레이블을 설정할 수 없습니다 볼 수 있듯이이 내가이를 만들 테스트 원래 예를 http://docs.oracle.com/javafx/2/charts/bar-chart.htm

입니다. 그것을 향상시킬 수 있습니까? 내가 당신을 이해 않은 경우

답변

2

는 잘 모르겠지만, 여기에 내가 그것을 시도하는 방법 방법입니다 :

package javafxstackoverflow; 

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.chart.BarChart; 
import javafx.scene.chart.CategoryAxis; 
import javafx.scene.chart.NumberAxis; 
import javafx.scene.chart.XYChart; 
import javafx.stage.Stage; 

public class JavaFXStackOverflow extends Application { 

    XYChart.Series series1 = new XYChart.Series(); 
    XYChart.Series series2 = new XYChart.Series(); 
    XYChart.Series series3 = new XYChart.Series(); 

    @Override 
    public void start(Stage stage) 
    { 
     stage.setTitle("Bar Chart Sample"); 
     final CategoryAxis xAxis = new CategoryAxis(); 
     final NumberAxis yAxis = new NumberAxis(); 
     final BarChart<String, Number> bc = new BarChart<String, Number>(xAxis, yAxis); 
     bc.setTitle("Country Summary"); 
     xAxis.setLabel("Country"); 
     yAxis.setLabel("Value"); 

     series1.setName("2003"); 
     series2.setName("2004"); 
     series3.setName("2005"); 

     AddBarChartDataSeries(series1, "Europe", 23); 
     AddBarChartDataSeries(series1, "Asia", 45); 
     AddBarChartDataSeries(series1, "America", 56); 

     AddBarChartDataSeries(series2, "Europe", 33); 
     AddBarChartDataSeries(series2, "Asia", 28); 
     AddBarChartDataSeries(series2, "America", 49); 

     AddBarChartDataSeries(series3, "Europe", 53); 
     AddBarChartDataSeries(series3, "Asia", 43); 
     AddBarChartDataSeries(series3, "America", 59); 

     Scene scene = new Scene(bc, 800, 600); 
     bc.getData().addAll(series1, series2, series3); 
     stage.setScene(scene); 
     stage.show(); 
    } 

    public void AddBarChartDataSeries(XYChart.Series serie, String name, float value) 
    { 
     serie.getData().add(new XYChart.Data(name, value)); 
    } 

    public static void main(String[] args) 
    { 
     launch(args); 
    } 

} 

난 그냥 함수에 매개 변수로 일련의 추가는. 내가 잘못 생각한 경우 조금 더 자세하게 문제를 설명하십시오.

관련 문제