package com.example.javafxproject;
import javafx.application.Application;
import javafx.geometry.VPos;
import javafx.scene.Scene;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.layout.FlowPane;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class BarChart extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Scene scene = new Scene(getPane());
primaryStage.setScene(scene);
primaryStage.setTitle("柱形图");
primaryStage.show();
}
private FlowPane getPane() {
final double WIDTH = 100; //宽度
FlowPane pane = new FlowPane(); //流式面板
pane.setStyle("-fx-hgap: 10; -fx-vgap: 10; -fx-padding: 10px;"); //设置水平。垂直间距为10,内边距为10
pane.setRowValignment(VPos.BOTTOM); //设置行垂直方向底部对齐
pane.setPrefWrapLength(450); //设置最大折行长度
Label project = new Label("项目 - 20%"); //项目
Rectangle projRectangle = new Rectangle(100, 300, WIDTH, 70);
projRectangle.setStyle("-fx-stroke: null; -fx-fill: red;");
project.setGraphic(projRectangle);
project.setContentDisplay(ContentDisplay.BOTTOM); //设置图形位于底部
Label trial = new Label("测试 - 10%"); //测试
Rectangle triRectangle = new Rectangle(170, 300, WIDTH, 35);
triRectangle.setStyle("-fx-stroke: null; -fx-fill: blue;");
trial.setGraphic(triRectangle);
trial.setContentDisplay(ContentDisplay.BOTTOM);
Label midExam = new Label("期中考试 - 30%"); //期中考试
Rectangle midRectangle = new Rectangle(170, 300, WIDTH, 105);
midRectangle.setStyle("-fx-stroke: null; -fx-fill: green;");
midExam.setGraphic(midRectangle);
midExam.setContentDisplay(ContentDisplay.BOTTOM);
Label endExam = new Label("期末考试 - 40%"); //期末考试
Rectangle endRectangle = new Rectangle(170, 300, WIDTH, 140);
endRectangle.setStyle("-fx-stroke: null; -fx-fill: orange;");
endExam.setGraphic(endRectangle);
endExam.setContentDisplay(ContentDisplay.BOTTOM);
pane.getChildren().addAll(project, trial, midExam, endExam);
return pane;
}
}
JavaFX、显示柱形图
最新推荐文章于 2023-11-07 20:15:00 发布