JavaFX绘图LinexChart

JavaFX绘图LinexChart,javafx,Javafx,我正在尝试学习如何使用JavaFX绘制图形,在我的代码中,我试图绘制非常简单的sin系列: public class Controller implements Initializable { final NumberAxis xAxis = new NumberAxis(); final NumberAxis yAxis = new NumberAxis(); @FXML private LineChart<Number, Number> ExactCh

我正在尝试学习如何使用JavaFX绘制图形,在我的代码中,我试图绘制非常简单的sin系列:

public class Controller implements Initializable {

   final NumberAxis xAxis = new NumberAxis();
   final NumberAxis yAxis = new NumberAxis();

   @FXML
   private LineChart<Number, Number> ExactChart = new LineChart<Number, Number>(xAxis, yAxis);

   private Series sin_series = new Series();


   @FXML
   private void plotTheChart(ActionEvent event){
       int N = 100;
       double x0 = -Math.PI;
       double X = Math.PI;
       double h = (X-x0)/(N);
       double[] x = new double[N];
       double[] y = new double[N];

       x[0] = x0;
       for(int i = 1; i < N; i++){
           x[i] = x[i-1] + h;
       }

       for(int i = 0; i < N; i++){
           y[i] = Math.sin(x[i]);
       }
       sin_series.setName("sin");

       for(int i = 0; i < N; i++){
           sin_series.getData().add(new Data(x[i], y[i]));
       }
       ExactChart.getData().addAll(sin_series);
   }

   @Override
   public void initialize(URL url, ResourceBundle resourceBundle) {

   }
}
公共类控制器实现可初始化{
最终数字axis xAxis=新数字axis();
最终数字axis yAxis=新数字axis();
@FXML
专用线形图ExactChart=新线形图(xAxis,yAxis);
专用系列sin_系列=新系列();
@FXML
私有无效绘图图表(ActionEvent事件){
int N=100;
双x0=-Math.PI;
double X=Math.PI;
双h=(X-x0)/(N);
双精度[]x=新双精度[N];
双精度[]y=新双精度[N];
x[0]=x0;
对于(int i=1;i
但当我执行它时,我面临以下问题:

线程“JavaFX应用程序线程”java.lang.ClassCastException中的异常:无法将类java.lang.Double转换为类java.lang.String(java.lang.Double和java.lang.String位于加载程序“引导”的模块java.base中)


我看不到代码的任何部分,我是在双字符串。你能告诉我哪里错了吗?

我注意到你定义了两个
NumberAxis
xAxis
yAxis
。您可以使用这些来创建
折线图
。但是您使用的是FXML,这意味着您的
折线图将替换为FXML文件中定义的折线图。查看FXML文件,查看您配置的轴。如果其中一个是
类别轴
,则将其替换为
编号轴
。同时删除
xAxis
yAxis
字段,并停止初始化
ExactChart
字段。然后确保不使用原始类型。您应该有
Series sinu Series=new Series()
新数据(x[i],y[i])
。此外,根据Java命名约定,字段名以小写字母开头,并遵循“驼峰式”模式(即
ExactChart
→ <代码>精确图表
sinu系列
→ <代码>SIN系列
)。以下命名约定有助于其他人(可能还有您)阅读代码。它还可以帮助堆栈溢出应用正确的语法高亮显示。谢谢您的工作!谢谢你的评论。