JavaFX、显示柱形图


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


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值