#java #javafx
#Ява #javafx
Вопрос:
NullPointerException
при использовании Slider.setShowTickLabels
метода.
Я использую JavaFX SDK 17.0.1 и JDK 11.0.13.8
Windows 10
public void start(Stage window) { BorderPane pane = new BorderPane(); Slider slider = new Slider(0, 100, 0); slider.setShowTickMarks(true); // slider.setShowTickLabels(true); pane.setCenter(slider); Scene scene = new Scene(pane); window.setScene(scene); window.setTitle("Application"); window.show(); }
Выводится, когда slider.setShowTickLabels(true)
закомментировано.
Получение исключения при включении того же метода.
java.lang.NullPointerException at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.createBitmap(DWGlyph.java:287) at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.getCachedBitmap(DWGlyph.java:273) at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.getD2DMask(DWGlyph.java:167) at javafx.graphics/com.sun.javafx.font.directwrite.DWGlyph.getPixelData(DWGlyph.java:352) at javafx.graphics/com.sun.prism.impl.GlyphCache.getCachedGlyph(GlyphCache.java:258) at javafx.graphics/com.sun.prism.impl.GlyphCache.render(GlyphCache.java:148) at javafx.graphics/com.sun.prism.impl.ps.BaseShaderGraphics.drawString(BaseShaderGraphics.java:2101) at javafx.graphics/com.sun.javafx.sg.prism.NGText.renderText(NGText.java:312) at javafx.graphics/com.sun.javafx.sg.prism.NGText.renderContent2D(NGText.java:270) at javafx.graphics/com.sun.javafx.sg.prism.NGShape.renderContent(NGShape.java:261) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964) at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270) at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:578) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964) at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270) at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:578) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964) at javafx.graphics/com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:270) at javafx.graphics/com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:578) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2072) at javafx.graphics/com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1964) at javafx.graphics/com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:479) at javafx.graphics/com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:328) at javafx.graphics/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at javafx.graphics/com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125) at java.base/java.lang.Thread.run(Thread.java:829)
Любая помощь была бы очень признательна, спасибо.
Комментарии:
1. Можете ли вы запустить свое приложение с
java -Djavafx.verbose=true -Dprism.verbose=true
помощью … и отредактируйте вопрос, чтобы включить вывод в формате кода?2. не может размножаться ..
3. Я неправильно настроил переменные среды. Спасибо за ответ.
Ответ №1:
Оказывается, я неправильно включил путь к SDK JavaFX в переменные среды. Вместо этого путь указывал на bin
папку lib
.