JavaFX:绘制清晰的细线
我想知道如何使用JavaFX绘制清晰的细线。我想我的线条是黑色的,1像素高。以下是我目前的情况:JavaFX:绘制清晰的细线,java,javafx,Java,Javafx,我想知道如何使用JavaFX绘制清晰的细线。我想我的线条是黑色的,1像素高。以下是我目前的情况: public class Main extends Application { @Override public void start(Stage primaryStage) { try { BorderPane root = new BorderPane(); root.setSnapToPixel(true);
public class Main extends Application {
@Override
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.0f);
line.setEndX(100f);
line.setStartY(30f);
line.setEndY(30f);
line.setStrokeWidth(1f);
line.setStrokeType(StrokeType.OUTSIDE);
line.setStroke(Color.BLACK);
line2.setStartX(50.0f);
line2.setEndX(200f);
line2.setStartY(100f);
line2.setEndY(100f);
line2.setStrokeWidth(1f);
line2.setStrokeType(StrokeType.OUTSIDE);
line2.setStroke(Color.BLACK);
root.getChildren().addAll(line, line2);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
以下是我得到的:
线条非常粗,使用值<1调用setStrokeWidth()
方法对高度没有影响,但会使黑色褪色。你知道如何得到一个1像素高的线条吗
我可以通过使用高度为1像素的矩形来实现,但它看起来有点脏。如果使用
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中的单位号是像素的角,所以指定<代码>位置+ 0.5 < /CUT>将该行放置在所述像素的中间。< /P>此问题不应被标记为重复,因为LineBuilder现在被弃用,因此原来的问题不再是最新的。此外,这个问题是关于JavaFX8的,而不是关于JavaFX2.2的。这里提供的源代码甚至没有在2.2中编译,我认为这可能会解决您的问题:-使用
以外的其他值。我只是在这里猜测,我想,没必要在这里猜测。例如,只看一下Node类的javadoc。寻找坐标系。