javafxml中mysql的面积图
我正在尝试在Intellij平台上使用MySQL数据库创建面积图。 我想在mysql数据库的面积图中显示大气数据。 这是面积图方法代码:javafxml中mysql的面积图,java,mysql,intellij-idea,javafx,Java,Mysql,Intellij Idea,Javafx,我正在尝试在Intellij平台上使用MySQL数据库创建面积图。 我想在mysql数据库的面积图中显示大气数据。 这是面积图方法代码: AreaChart areaChart; public void contAreaTabM(Event event) throws ClassNotFoundException, SQLException, ClassCastException { //ObservableList<XYChart.Series<Integer, Doub
AreaChart areaChart;
public void contAreaTabM(Event event) throws ClassNotFoundException, SQLException, ClassCastException {
//ObservableList<XYChart.Series<Integer, Double>> answer = FXCollections.observableArrayList();
XYChart.Series<Integer, Double> temperature = new XYChart.Series<>();
XYChart.Series<Integer, Double> pressure = new XYChart.Series<>();
XYChart.Series<Integer, Double> humidity = new XYChart.Series<>();
temperature.setName("Temperature");
pressure.setName("Pressure");
humidity.setName("Humidity");
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
//PreparedStatement pst=con.prepareStatement("Select Username, Password from login where username = ?");
String query = "Select Year_1, Temperature, Pressure, Humidity FROM atomdata";
Statement stmt = con.createStatement();
//pst.setString(1, editUsername.getText());
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
temperature.getData().add(new XYChart.Data<>(rs.getInt("Year_1"), rs.getDouble("Temperature")));
pressure.getData().add(new XYChart.Data<>(rs.getInt("Year_1"), rs.getDouble("Pressure")));
humidity.getData().add(new XYChart.Data<>(rs.getInt("Year_1"), rs.getDouble("Humidity")));
}
//answer.addAll(Temperature, Pressure, Humidity);
areaChart.getData().addAll(temperature, pressure, humidity);
}
首先,最好添加完整的代码片段,以便更好地理解您的问题 根据您的例外情况:
Exception in thread "JavaFX Application Thread" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at javafx.scene.chart.CategoryAxis.calculateRequiredSize(CategoryAxis.java:378)
at javafx.scene.chart.CategoryAxis.autoRange(CategoryAxis.java:363)
at javafx.scene.chart.Axis.computePrefHeight(Axis.java:577)
您正在使用CategoryAxis作为图表的X轴,该图表用于字符串表示,并且您正在尝试向其添加整数值,因此您产生了强制转换异常
可能您需要做的是根据您的逻辑将rs.getInt(“Year_1”)解析为字符串
您可以按照Oracle图表教程示例进行操作:
首先,最好添加完整的代码片段,以便更好地理解您的问题 根据您的例外情况:
Exception in thread "JavaFX Application Thread" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at javafx.scene.chart.CategoryAxis.calculateRequiredSize(CategoryAxis.java:378)
at javafx.scene.chart.CategoryAxis.autoRange(CategoryAxis.java:363)
at javafx.scene.chart.Axis.computePrefHeight(Axis.java:577)
您正在使用CategoryAxis作为图表的X轴,该图表用于字符串表示,并且您正在尝试向其添加整数值,因此您产生了强制转换异常
可能您需要做的是根据您的逻辑将rs.getInt(“Year_1”)解析为字符串
您可以按照Oracle图表教程示例进行操作:
请添加行号,或突出显示导致错误的行。没有突出显示行。显示错误请添加行号,或突出显示导致错误的行。没有突出显示行。这表明你的建议是错误的。我把整数改成了字符串,代码运行得很好。谢谢你的建议。我已经把整数改成了字符串,代码运行得很好。