繁体   English   中英

如何在 JavaFX / TornadoFX 中消除饼图与其边界之间的额外空间(填充)?

[英]How to get rid of extra-space (padding) between piechart and its border in JavaFX / TornadoFX?

我有一个没有名称、标签、图例的简单饼图。 我只需要一个圆圈本身。 但我无法摆脱边界和内容之间的填充。 我已经尝试了所有这些但没有收到任何结果(TornadoFX CSS):

diagram {
  padding = box(0.px)
  labelPadding = box(0.px)

  borderImageInsets += box(0.px)
  borderInsets += box(0.px)
  backgroundInsets += box(0.px)

  maxWidth = 25.px
  maxHeight = 25.px
  labelLineLength = 0.px
  borderColor += box(Color.GREEN)
}

我想摆脱圆形和绿色边框之间的多余空间。 有人知道 Java / CSS / TornadoFX 解决方案/选项吗?

在此处输入图像描述

您可以使用负值,例如填充。 请看一下这个小例子(JavaFX):

package sample;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage stage) {

        VBox vBox = new VBox();
        ObservableList<PieChart.Data> pieChartData =
                FXCollections.observableArrayList(
                        new PieChart.Data("", 75),
                        new PieChart.Data("", 25));
        final PieChart chart = new PieChart(pieChartData);
        chart.setLegendVisible(false);

        // Negative value for padding:
        chart.setStyle("-fx-padding: -35; -fx-border-color: green; -fx-border-width: 3;");

        vBox.getChildren().addAll(chart);
        stage.setScene(new Scene(vBox));
        stage.show();

        //chart.setMaxWidth(400d); // careful
    }


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

在此处输入图像描述

您还可以快速设置图表的最大宽度以使绿色框成为正方形,但请注意,它可能会弄乱整体布局:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM