2
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.shape.Line;
import javafx.stage.Stage;


public class LinesTest extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        final AnchorPane root = new AnchorPane();

        final Line line1 = new Line(20, 10, 300, 10);
        final Line line2 = new Line(250, 10, 400, 10);
        root.getChildren().addAll(line1, line2);

        stage.setTitle("Lines Test");
        stage.setScene(new Scene(root, 500, 500));
        stage.show();
    }

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

上記のコードを実行すると、2 つの線が重なり合って別の色が作成されることがわかります。この動作を防ぐことは可能ですか?

4

1 に答える 1

2

2 つの方法でこれを防ぐことができます:
1) setSnapToPixel を使用する

final AnchorPane root = new AnchorPane();
root.setSnapToPixel(true);

2) または、行の startY と endY の値を半分に定義します。

final Line line1 = new Line(20, 10.5, 300, 10.5);
final Line line2 = new Line(250, 10.5, 400, 10.5);

これらの技術的な詳細については、jewelsea の優れた回答に任せます。JavaFX
2 での線の正確な寸法は?
JavaFX 2.2で鮮明で不透明なヘアラインを描く方法は?

于 2013-11-10T13:41:08.473 に答える