Hi,
ich hoffe mein Problem ist nicht zu Banal, aber ich bekomme die Lösung gerade nicht alleine zustande:
Ich habe eine DB Tabelle (oracle) die folgendermasen aussieht:
O9 O10 O11 O12 O13 O14 O15 Datum Zeilennummer
-4,8 -20,4 -32 -31,5 -24 -10,7 -3,4 16.12.1992 1
-3,8 -9 -11,7 -12,7 -9,3 -2,6 -1,6 26.05.1993 2
-3,9 -9,1 -12,1 -13,1 -9,4 -3 -1,6 20.07.1993 3
-4 -9,3 -12,9 -13,7 -9,6 -3,4 -1 17.11.1993 4
-4,4 -10,7 -14,5 -15,5 -11,2 -4,1 -1,7 10.05.1994 5
-4,3 -11,2 -15,6 -16,7 -11,6 -4,1 -1,6 01.08.1994 6
-4,2 -11,7 -16,3 -17,2 -11,9 -4 -1,6 21.10.1994 7
-4,6 -13,2 -18,2 -19,5 -13,1 -4,6 -2,1 15.03.1995 8
-4,8 -13,6 -18,6 -20 -13,5 -4,7 -2 04.07.1995 9
-4,9 -13,8 -19,1 -20,2 -13,7 -4,8 -1,8 22.09.1995 10
Jetzt möchte ich ein JavaFX Line Chart mit den Werten erstellen wobei für jede Zeile eine Diagrammlinie verwendet wird.
akutell habe ich "händisch" die ersten 2 Zeilen eingetragen:
Mein Code:
Wie kann ich das so abändern, das mir automatisch alle Zeilen die in der Tabelle vorhanden sind ausgegeben werden, egal wie viele das im laufe der Zeit sind? :rtfm:
ich hoffe mein Problem ist nicht zu Banal, aber ich bekomme die Lösung gerade nicht alleine zustande:
Ich habe eine DB Tabelle (oracle) die folgendermasen aussieht:
O9 O10 O11 O12 O13 O14 O15 Datum Zeilennummer
-4,8 -20,4 -32 -31,5 -24 -10,7 -3,4 16.12.1992 1
-3,8 -9 -11,7 -12,7 -9,3 -2,6 -1,6 26.05.1993 2
-3,9 -9,1 -12,1 -13,1 -9,4 -3 -1,6 20.07.1993 3
-4 -9,3 -12,9 -13,7 -9,6 -3,4 -1 17.11.1993 4
-4,4 -10,7 -14,5 -15,5 -11,2 -4,1 -1,7 10.05.1994 5
-4,3 -11,2 -15,6 -16,7 -11,6 -4,1 -1,6 01.08.1994 6
-4,2 -11,7 -16,3 -17,2 -11,9 -4 -1,6 21.10.1994 7
-4,6 -13,2 -18,2 -19,5 -13,1 -4,6 -2,1 15.03.1995 8
-4,8 -13,6 -18,6 -20 -13,5 -4,7 -2 04.07.1995 9
-4,9 -13,8 -19,1 -20,2 -13,7 -4,8 -1,8 22.09.1995 10
Jetzt möchte ich ein JavaFX Line Chart mit den Werten erstellen wobei für jede Zeile eine Diagrammlinie verwendet wird.
akutell habe ich "händisch" die ersten 2 Zeilen eingetragen:
Mein Code:
Java:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;
public class LineChartTest_1 extends Application {
public static ResultSet rs1;
public static ResultSet rs2;
@Override public void start(Stage stage) throws SQLException, Exception {
Connection conn = db_input.Db_select.getConnection();
Statement stmt = conn.createStatement();
rs1 = stmt.executeQuery("SELECT * FROM D_KRONE WHERE TO_CHAR(datum, 'YYYY')='1992'");
if (!rs1.next()) {
throw new SQLException("SELECT *: no result");
}
Connection conn2 = db_input.Db_select.getConnection();
Statement stmt2 = conn.createStatement();
rs2 = stmt2.executeQuery("SELECT * FROM D_KRONE WHERE TO_CHAR(datum, 'YYYY')='1993'");
if (!rs2.next()) {
throw new SQLException("SELECT *: no result");
}
stage.setTitle("FX Line Chart");
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
xAxis.setLabel("Month");
final LineChart<String,Number> lineChart =
new LineChart<String,Number>(xAxis,yAxis);
lineChart.setTitle("Charts 1992 - 2009");
XYChart.Series series1 = new XYChart.Series();
series1.setName("1992");
series1.getData().add(new XYChart.Data( "O9", rs1.getDouble(1)));
series1.getData().add(new XYChart.Data("O10", rs1.getDouble(2)));
series1.getData().add(new XYChart.Data("O11", rs1.getDouble(3)));
series1.getData().add(new XYChart.Data("O12", rs1.getDouble(4)));
series1.getData().add(new XYChart.Data("O13", rs1.getDouble(5)));
series1.getData().add(new XYChart.Data("O14", rs1.getDouble(6)));
series1.getData().add(new XYChart.Data("O15", rs1.getDouble(7)));
XYChart.Series series2 = new XYChart.Series();
series2.setName("1993");
series2.getData().add(new XYChart.Data( "O9", rs2.getDouble(1)));
series2.getData().add(new XYChart.Data("O10", rs2.getDouble(2)));
series2.getData().add(new XYChart.Data("O11", rs2.getDouble(3)));
series2.getData().add(new XYChart.Data("O12", rs2.getDouble(4)));
series2.getData().add(new XYChart.Data("O13", rs2.getDouble(5)));
series2.getData().add(new XYChart.Data("O14", rs2.getDouble(6)));
series2.getData().add(new XYChart.Data("O15", rs2.getDouble(7)));
Scene scene = new Scene(lineChart,800,600);
lineChart.getData().addAll(series1, series2);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Wie kann ich das so abändern, das mir automatisch alle Zeilen die in der Tabelle vorhanden sind ausgegeben werden, egal wie viele das im laufe der Zeit sind? :rtfm: