我有两个文件,其中包含fxml的main函数和一个控制器文件,以及一个涉及NewFXMain.java的performance.java文件。 实际上我在parameterSelectionController.java中有三个数组列表,我想使用NewFXMain.java绘制它,它使用performance.java(需要传递的参数是一个折线图参数和三个数组列表)。但问题是我首先有两个主文件我想使用parameterselectionmain.java收集参数之后我想要使用第二个是NewFXMain.java绘制折线图。
要求:
1)使用parameterSelectionController.java收集参数数组列表。
2)使用NewFXMain.java使用数组列表绘制图表。
予。 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);
}
}
我想使用涉及performance.java的NewFXMain.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);
}
}
答案 0 :(得分:-1)
尝试这样的事情:
public class Main {
public static final void main(String... args) {
ParameterSelectionMain.main(args);
NewFXMain.main(args);
}
}