I have two files which contains main function and one controller file for fxml and one file of performance.java which involves NewFXMain.java. Actually I have three array list in parameterSelectionController.java which i want to plot using NewFXMain.java which uses performance.java(which requires parameters to be passed is one line chart parameter, and three array list). But the problem is I am having two main file first I want to collect the parameters using parameterselectionmain.java after that I want o plot the line chart using second one which is NewFXMain.java.
Requirement:
1) Collect the parameter array list using parameterSelectionController.java.
2) plot the chart using the array lists using NewFXMain.java.
I. ParameterSelectionController.java
for(int i=0;i<arr.size();i++)
{
if(arr.get(i)==null)
{
System.out.println("no value in" + arr.get(i));
}
else
{
refined.add(arr.get(i));
}
}
final ArrayList ar = new ArrayList();
for(int i=0; i<refined.size();i++)
{
System.out.println("you selected : " + refined.get(i));
System.out.println("size of refined arraylist is " + refined.size());
}
Statement st = conn.createStatement();
System.out.println(engineList);
for(int j=0;j<engineList.size()+1;j++)
{
ar.clear();
String sql = "select * from Parameters_Detail where Engine_No=" + "\""+ engineList.get(0).get(j).toString().trim() + "\"";
ResultSet rs = st.executeQuery(sql);
while(rs.next())
{
for(int i=0;i<refined.size();i++)
{
ar.add(rs.getFloat(refined.get(i).toString()));
}
}
for(int i=0;i<ar.size();i++)
{
System.out.println(refined.get(i) + " column is having value : " +ar.get(i) + " for engine no: " + engineList.get(0).get(j));
}
collection.add(new ArrayList(ar));
}
System.out.println(engineList.get(0)); //engine ArrayList
System.out.println(refined); //refined ArrayList
System.out.println(collection); //collection ArrayList
}
public ArrayList sendEnginesList()
{
return (ArrayList)engineList;
}
public ArrayList sendParameterList()
{
return refined;
}
public ArrayList sendParameterValues()
{
return collection;
}
ii.ParameterSelectionMain.java
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class ParameterSelectionMain extends Application {
@Override
public void start(Stage stage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("ParameterSelectionFXML.fxml"));
//stage.initStyle(StageStyle);
stage.setTitle("Select parameters of your choice");
stage.setScene(new Scene(root));
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
iii.PERFORMANCE.java
import ParameterSelection.*;
import java.util.ArrayList;
import java.util.List;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.XYChart;
public class performance {
protected LineChart<String,Number> lineChart;
protected ArrayList parameters;
protected ArrayList<List> param;
protected ArrayList engines;
public XYChart.Series series = new XYChart.Series();
public performance(LineChart<String,Number> lineChart, ArrayList parameters, ArrayList<List> paramValues, ArrayList engines) {
this.lineChart = lineChart;
this.parameters = parameters;
this.param = paramValues;
this.engines = engines;
}
public void generateChart() {
for (int i = 0; i < engines.size(); i++) {
XYChart.Series series = new XYChart.Series();
series.setName(engines.get(i).toString());
for (int j = 0; j < parameters.size(); j++) {
series.getData().add(new XYChart.Data(parameters.get(j).toString(), param.get(i).get(j)));
}
lineChart.getData().add(series);
}
System.out.println(lineChart);
}
}
I WANT TO PLOT THE ABOVE DATA IN A LINE CHART USING NewFXMain.java which involves performance.java
iii. NewFXMain.java
import ParameterSelection.ParameterSelectionController;
import java.util.ArrayList;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.scene.Scene;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.stage.Stage;
public class NewFXMain extends Application {
@Override
public void start(Stage stage)
{
stage.setTitle("Performance Analysis");
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
xAxis.setLabel("Values");
//yAxis.setLabel("Engines");
LineChart<String, Number> lineChart = new LineChart<String,Number>(xAxis,yAxis);
Scene scene = new Scene(lineChart,800,600);
lineChart.setTitle("Performance Analysis");
ParameterSelectionController psc = new ParameterSelectionController();
performance performvalues = new performance(lineChart, psc.sendParameterList(), psc.sendParameterValues(), (ArrayList)psc.sendEnginesList().get(0));
performvalues.generateChart();
stage.setScene(scene);
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}