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