5
在javafx畫布中進行徒手畫時,我無法獲得anitialiazed線條。 以下是代碼...畫布不能畫出流暢的線條
import javafx.application.*;
import javafx.event.*;
import javafx.scene.*;
import javafx.scene.canvas.*;
import javafx.scene.control.*;
import javafx.scene.input.*;
import javafx.scene.shape.*;
import javafx.stage.*;
public class Test2 extends Application {
GraphicsContext gc;
public static void main(String[] args) { launch(args); }
private class MouseDragged implements EventHandler<MouseEvent> {
public void handle(MouseEvent e) {
gc.lineTo(e.getX(), e.getY());
gc.stroke();
}
}
private class MousePressed implements EventHandler<MouseEvent> {
public void handle(MouseEvent e) {
gc.moveTo(e.getX(), e.getY());
}
}
@Override
public void start(Stage stage) {
Canvas canvas = new Canvas(500, 500);
canvas.setOnMouseDragged(new MouseDragged());
canvas.setOnMousePressed(new MousePressed());
gc = canvas.getGraphicsContext2D();
gc.setLineCap(StrokeLineCap.ROUND);
gc.setLineJoin(StrokeLineJoin.ROUND);
gc.setLineWidth(0.1);
Group root = new Group(canvas);
Scene scene = new Scene(root);
stage.setTitle("Test2");
stage.setScene(scene);
stage.show();
}
}
而如果我創建了一個Swing應用程序,我可以提供呈現提示,以平滑出來...
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
如何提供渲染命中圖形上下文在畫布上?
針對[JavaFX問題跟蹤器](https://javafx-jira.kenai.com)登錄功能請求 – jewelsea
舊的JavaFX問題跟蹤器鏈接已死亡。功能要求可以記錄在http://bugreport.java.com(我認爲),儘管如果你在[openjfx-dev郵件列表](http:// mail.openjdk.java.net/mailman/listinfo/openjfx-dev),然後記錄下來。 – jewelsea
請注意,這裏的實際問題可能會多次繪製相同的點,這會使反鋸齒線顯示爲別名。看到相關的問題:[如何應用反鋸齒javafx方法像GraphicsContext.fillArc()?](https://stackoverflow.com/questions/34148521/how-to-apply-antialiasing-to-javafx-methods-like-graphicscontext -fillarc) – jewelsea