JavaFX BarChart测试

package BarChartTest;

import java.util.Arrays;

import javafx.animation.Animation;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Bounds;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Parent;
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.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class BarChartTestDemo extends Application {

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

    @Override
    public void start(Stage primaryStage) throws Exception {
        
        Button button = new Button("button");
        
        //Defining the x axis               
        CategoryAxis xAxis = new CategoryAxis();   
                
        xAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(
           "Speed", "User rating", "Milage", "Safety"))); 
        xAxis.setLabel("category");  
         
        //Defining the y axis 
        NumberAxis yAxis = new NumberAxis(0, 20, 10); //从0到20,间隔
        yAxis.setLabel("score");
        
        
        //Creating the Bar chart 
        BarChart<String, Number> barChart = new BarChart<>(xAxis, yAxis);  
        barChart.setTitle("Comparison between various cars"); 
        
    
        barChart.setLayoutX(100);
        barChart.setLayoutY(100);
        
        
        AnchorPane root = new AnchorPane();
        root.getChildren().addAll(button, barChart);
        
        Scene scene = new Scene(root);
        
        primaryStage.setTitle("Sample Application");
        primaryStage.setScene(scene);
        primaryStage.setWidth(800);
        primaryStage.setHeight(800);
        primaryStage.show();

        
        button.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent arg0) {
                System.out.println("1");
      
                XYChart.Series<String, Number> series1 = new XYChart.Series<>(); 
                series1.setName("Fiat"); 
             
                XYChart.Series<String, Number> series2 = new XYChart.Series<>(); 
                series2.setName("Audi"); 

                //测试
                XYChart.Data<String, Number> d1_1 = new XYChart.Data<String, Number>("Speed", 1.0);
                XYChart.Data<String, Number> d1_2 = new XYChart.Data<String, Number>("User rating", 3.0);
                XYChart.Data<String, Number> d1_3 = new XYChart.Data<String, Number>("Milage", 5.0);
                XYChart.Data<String, Number> d1_4 = new XYChart.Data<String, Number>("Safety", 5.0);
                series1.getData().addAll(d1_1,d1_2,d1_3,d1_4);
                
                XYChart.Data<String, Number> d2_1 = new XYChart.Data<String, Number>("Speed", 1.0);
                XYChart.Data<String, Number> d2_2 = new XYChart.Data<String, Number>("User rating", 3.0);
                XYChart.Data<String, Number> d2_3 = new XYChart.Data<String, Number>("Milage", 5.0);
                XYChart.Data<String, Number> d2_4 = new XYChart.Data<String, Number>("Safety", 5.0);
                series2.getData().addAll(d2_1,d2_2,d2_3,d2_4);
                
                
                barChart.getData().addAll(series1, series2);
                
                VBox v = new VBox();
                v.setAlignment(Pos.CENTER);
                v.getChildren().add(new Label(String.valueOf(series1.getData().get(3).getYValue())));
                series1.getData().get(3).setNode(v);
                System.out.println(String.valueOf(series1.getData().get(3)));
            }
        });
    }
    
    


}

 

posted @ 2022-05-04 15:56  洛尔  阅读(44)  评论(0)    收藏  举报