当您键入文本时,RichTextFx VirtualizedScrollPane 会闪烁
RichTextFx VirtualizedScrollPane flickers when text wraps as you type
我在使用 RichTextFx StyleClassedTextArea
和 VirtualizedScrollPane
时遇到闪烁问题。当您换行并继续打字时,它会闪烁太多,以至于您在打字时无法阅读。这与常规 TextArea
滚动形成鲜明对比。它比上面的 gif 更明显(gif fps 不公平)。
我不确定这是不是因为 GridPane
...
Java8u212
<dependency>
<groupId>org.fxmisc.richtext</groupId>
<artifactId>richtextfx</artifactId>
<version>0.10.6</version>
</dependency>
代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import org.fxmisc.flowless.VirtualizedScrollPane;
import org.fxmisc.richtext.StyleClassedTextArea;
public class NewFXMain extends Application
{
@Override
public void start(Stage primaryStage)
{
StyleClassedTextArea textArea = new StyleClassedTextArea();
textArea.setWrapText(true);
TextArea textAreaFx = new TextArea();
textAreaFx.setWrapText(true);
VirtualizedScrollPane scrollpane = new VirtualizedScrollPane(textArea);
scrollpane.setPrefWidth(300);
GridPane notePane = new GridPane();
notePane.setVgap(2);
notePane.setHgap(6);
notePane.add(textAreaFx, 0, 0);
notePane.add(scrollpane, 0, 1);
Scene scene = new Scene(notePane, 600, 400);
primaryStage.setScene(scene);
primaryStage.setTitle("Scroll flickering demo");
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
launch(args);
}
}
找到了如何修复文本闪烁的问题,尽管滚动条仍然闪烁,这是更容易接受的方式:
textArea.requestFollowCaret();
我在使用 RichTextFx StyleClassedTextArea
和 VirtualizedScrollPane
时遇到闪烁问题。当您换行并继续打字时,它会闪烁太多,以至于您在打字时无法阅读。这与常规 TextArea
滚动形成鲜明对比。它比上面的 gif 更明显(gif fps 不公平)。
我不确定这是不是因为 GridPane
...
Java8u212
<dependency>
<groupId>org.fxmisc.richtext</groupId>
<artifactId>richtextfx</artifactId>
<version>0.10.6</version>
</dependency>
代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import org.fxmisc.flowless.VirtualizedScrollPane;
import org.fxmisc.richtext.StyleClassedTextArea;
public class NewFXMain extends Application
{
@Override
public void start(Stage primaryStage)
{
StyleClassedTextArea textArea = new StyleClassedTextArea();
textArea.setWrapText(true);
TextArea textAreaFx = new TextArea();
textAreaFx.setWrapText(true);
VirtualizedScrollPane scrollpane = new VirtualizedScrollPane(textArea);
scrollpane.setPrefWidth(300);
GridPane notePane = new GridPane();
notePane.setVgap(2);
notePane.setHgap(6);
notePane.add(textAreaFx, 0, 0);
notePane.add(scrollpane, 0, 1);
Scene scene = new Scene(notePane, 600, 400);
primaryStage.setScene(scene);
primaryStage.setTitle("Scroll flickering demo");
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
launch(args);
}
}
找到了如何修复文本闪烁的问题,尽管滚动条仍然闪烁,这是更容易接受的方式:
textArea.requestFollowCaret();