我有一个javaFX 8应用程序在jre 1.8.0_45中运行得非常好但是今天有一个用户来找我有问题.经过一番调查后,我意识到这与他最近发布的jre有关,特别是1.8.0_60.我正在阅读一个GIS shapefile并在我的版本中绘制几个路径到一个组(如30.000或更多)它有点慢,但它工作正常.在最新版本中,图像显得扭曲.以块的形式抽出不合适的路径.
所以我决定做一个小测试应用程序来将问题与我可能正在做的任何事情分开.在这样做时,我发现问题不仅在绘制路径组时,而且绘制到画布时.此外,如果我设法重绘屏幕,图像看起来会很好.例如,我有一个带有包含路径的Group的visible属性的复选框,所以如果我将它设置为false然后为true,则需要一些时间绘制场景,但它看起来很好.测试应用程序非常简单,如果你按一个按钮生成一个带有一些正方形10px10p的画布,如果你按另一个生成更多正方形,从而出现渲染小故障.
package gisUI;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.stage.Stage;
public class Path2DTestApplication extends Application {
private static final int WIDTH = 10;
Group content = new Group();
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("JavaFX 1.8.0_60 rendering test");
Button button = new Button("Canvas …
Run Code Online (Sandbox Code Playgroud)