JavaFX:绘制锐利的细线
发布时间:2020-12-15 02:09:42 所属栏目:Java 来源:网络整理
导读:我想知道如何使用 JavaFX绘制锐利的细线.我想我的线条是黑色的,高1像素.这就是我现在所拥有的: public class Main extends Application { @Override public void start(Stage primaryStage) { try { BorderPane root = new BorderPane(); root.setSnapToPix
我想知道如何使用
JavaFX绘制锐利的细线.我想我的线条是黑色的,高1像素.这就是我现在所拥有的:
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); } } 这是我得到的: 这些行非常粗,并使用值<来调用setStrokeWidth()方法. 1对高度没有影响,但会使黑色渐变.知道如何获得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); 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会将线放在所述像素的中间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |