【发布时间】:2012-03-25 17:00:59
【问题描述】:
我是 JavaFX 2.0 的新手,为了练习,我遵循了有关折线图(股票监控)的 Oracle 示例 http://docs.oracle.com/javafx/2.0/charts/line-chart.htm#CIHGBCFI
现在我想在同一个包中添加一个 CSS 类来修改 Stroke、颜色等,但我无法成功。
在 StackOverflow 上搜索我发现了
scene.getStylesheets().add(this.getClass().getResource("linechart.css").toExternalForm());
但我仍然收到错误
Exception in Application start method Exception in thread "main" java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
我的 java 类名是 JavaFXApplication2,CSS 类名是 linechart.css
有人会这么好心地解释我哪里错了吗?
这里还有另一个很好的教程,关于 CSS 与 Stock Monitoring 的使用示例 http://docs.oracle.com/javafx/2.0/charts/css-styles.htm
但我不知道如何将 CSS 示例添加到 java 类中
谢谢
【问题讨论】:
-
Stack:Caused by: java.lang.NullPointerException at javafxapplication2.JavaFXApplication2.start(JavaFXApplication2.java:75) 其中第 75 行是 scene.getStylesheets()。等声明
-
如果
scene尚未初始化或linechart.css文件不存在,则可能会在该行出现NullPointerException。仔细检查 CSS 文件名及其在包中的位置。或者,您可以在此处将您的start(Stage primaryStage)方法发布到JavaFXApplication2。 -
public class JavaFXApplication2 extends Application { @Override public void start(Stage stage) { stage.setTitle("Lines plot");最终 CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); final LineChart
lineChart = new LineChart (xAxis, yAxis); XYChart.Series series1 = new XYChart.Series(); series1.getData().add(new XYChart.Data("Jan", 23)); series1.getData().add(new XYChart.Data("Feb", 14)); series1.getData().add(new XYChart.Data("Mar", 15)); -
场景场景 = new Scene(lineChart, 800, 600); lineChart.getData().addAll(series1, series2); stage.setScene(场景); stage.show();
-
好像没问题。我怀疑css文件没有被复制到编译java文件的文件夹中。你在使用 IDE 吗?能否将此行添加到您的应用程序
System.out.println(this.getClass().getResource(".").toExternalForm());并将css文件复制到此行打印的文件夹路径中。