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)));
}
});
}
}