Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git

Initialize Swing objects in Swing's EDT

AuthorDaveJarvis <email>
Date2020-11-11 21:53:38 GMT-0800
Commitd8ac1c256ed139414af3720ed89df18b121f5f25
Parent3b997aa
Delta14 lines added, 14 lines removed
src/main/resources/com/keenwrite/preview/webview.css
background-color: #fff;
margin: 0 auto;
- max-width: 960px;
line-height: 1.6;
color: #454545;
src/main/java/com/keenwrite/preview/HtmlPreview.java
private HtmlPanel mView;
+ private JScrollPane mScrollPane;
private String mBaseUriPath = "";
// No need to append same prefix each time the HTML content is updated.
mHtmlDocument.append( HTML_HEAD_OPEN );
-
- // Inject an SVG renderer that produces high-quality SVG buffered images.
- final var factory = new ChainedReplacedElementFactory();
- factory.addFactory( new SvgReplacedElementFactory() );
- factory.addFactory( new SwingReplacedElementFactory() );
invokeLater( () -> {
mView = new HtmlPanel();
- final var scrollPane = new JScrollPane( mView );
+ mScrollPane = new JScrollPane( mView );
- setContent( scrollPane );
+ // Enabling the cache eliminates black background flashes.
setCache( true );
setCacheHint( SPEED );
+ setContent( mScrollPane );
+
+ final var factory = new ChainedReplacedElementFactory();
+ factory.addFactory( new SvgReplacedElementFactory() );
+ factory.addFactory( new SwingReplacedElementFactory() );
final var context = mView.getSharedContext();
public void repaintScrollPane() {
getScrollPane().repaint();
- }
-
- public JScrollBar getVerticalScrollBar() {
- return getScrollPane().getVerticalScrollBar();
}
private JScrollPane getScrollPane() {
- return (JScrollPane) getContent();
+ return mScrollPane;
+ }
+
+ public JScrollBar getVerticalScrollBar() {
+ return getScrollPane().getVerticalScrollBar();
}
private int getVerticalScrollBarHeight() {
- return getScrollPane().getVerticalScrollBar().getHeight();
+ return getVerticalScrollBar().getHeight();
}
}