JavaFX 2.x : How to draw minor grid lines

标签 java grid javafx-2 linechart

我无法绘制小网格线,在 JavaFx 2.2 中可以这样做吗?就我而言,网格和图形会移动,因此我无法使用静态图像来生成小网格(如本示例 here 所示的实时图形)。

目前我看到这个 No minor grid

我正在寻找的一个例子。 with minor grid

最佳答案

根据@colti的建议和一些模块逻辑,我想出了这个解决方案

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;

public class Axis extends Application
{

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

    @Override
    public void start(final Stage stage) throws Exception
    {
        final NumberAxis x = new NumberAxis();
        final NumberAxis y = new NumberAxis();
        x.setAutoRanging(false);
        y.setAutoRanging(false);

        final LineChart<Number, Number> lineChart = new LineChart<Number, Number>(x, y);
        lineChart.setPrefSize(900, 900);
        lineChart.setLegendVisible(false);
        lineChart.setCreateSymbols(false);
        lineChart.setAlternativeColumnFillVisible(false);
        lineChart.setAlternativeRowFillVisible(false);

        final XYChart.Series seriesX = new XYChart.Series();

        for (int i = 1; i < 100; i++) {
            if ((i % 2) != 0) {
                seriesX.getData().add(new XYChart.Data(i, 0));
                seriesX.getData().add(new XYChart.Data(i, 100));
            }
            else {
                seriesX.getData().add(new XYChart.Data(i, 100));
                seriesX.getData().add(new XYChart.Data(i, 0));
            }

        }

        final XYChart.Series seriesY = new XYChart.Series();

        for (int i = 1; i < 100; i++) {
            if ((i % 2) != 0) {
                seriesY.getData().add(new XYChart.Data(0, i));
                seriesY.getData().add(new XYChart.Data(100, i));
            }
            else {
                seriesY.getData().add(new XYChart.Data(100, i));
                seriesY.getData().add(new XYChart.Data(0, i));
            }

        }

        lineChart.getData().add(seriesX);
        lineChart.getData().add(seriesY);
        lineChart.getStylesheets().add("site.css");
        final Scene scene = new Scene(lineChart);
        stage.setScene(scene);
        stage.show();
    }
}

CSS

.chart-series-line{    
-fx-stroke-width: 1px;
-fx-stroke:#eedede;
-fx-effect: null;
}
.chart-vertical-grid-lines {
    -fx-stroke: #cccccc;
}
.chart-horizontal-grid-lines {
    -fx-stroke: #cccccc;
}

关于JavaFX 2.x : How to draw minor grid lines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330897/

相关文章:

Java本地化数字格式

java - 使用 Android 语音识别无法收到超过 5 个结果

java - 如何在 Java 中将数字文件读入数组列表

javascript - ExtJS 4 - 分别将 CSS 应用于网格标题

grid - 如何获得 bootstrap 4 24 网格

java - JAXB Unmarshaller - 意外的元素异常

wpf - WPF 网格中的键盘导航

javafx-2 - 如何将在 FXML Controller1 中创建的对象传递给内部 FXML 控件的 Controller2

Swing 框架上的 javafx 警报对话框

javafx-2 - 如何在运行时使用Button Click更改子fxml gui部件