JavaFX:绘制锐利的细线

时间:2015-09-15 19:56:33

标签: java javafx

我想知道如何使用JavaFX绘制清晰的细线。我想我的线条是黑色的,高1像素。这就是我现在所拥有的:

setStrokeWidth()

这是我得到的:

result

这些行非常粗,并使用值<来调用TRUE方法。 1对高度没有影响,但会使黑色渐变。知道如何获得1像素高线?

我可以通过使用高度为1像素的矩形来实现它,但它看起来有点脏。

1 个答案:

答案 0 :(得分:0)

如果您使用StrokeType.CENTERED,并在半个单位上启动x / y值,那么这些线条对我来说似乎很不好。

public void start(Stage primaryStage) {
    try {
        BorderPane root = new BorderPane();
        root.setSnapToPixel(true);
        Scene scene = new Scene(root, 400, 400);

        Line line = new Line();
        Line line2 = new Line();

        line.setStartX(0.5);
        line.setEndX(100.5);
        line.setStartY(30.5);
        line.setEndY(30.5);
        line.setStrokeWidth(1.0);
        line.setStrokeType(StrokeType.CENTERED);
        line.setStroke(Color.BLACK);

        line2.setStartX(50.5);
        line2.setEndX(200.5);
        line2.setStartY(100.5);
        line2.setEndY(100.5);
        line2.setStrokeWidth(1.0);
        line2.setStrokeType(StrokeType.CENTERED);
        line2.setStroke(Color.BLACK);

        root.getChildren().addAll(line, line2);

        primaryStage.setScene(scene);
        primaryStage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

我的猜测是JavaFX中的单位数是针对像素的角点的,所以指定location + 0.5将该行放在所述像素的中间。