如何以编程方式生成随机JavaFX图表
所以我想生成随机的JavaFX图表,比如散点图。我正在使用netbeans 7.4 我想随机化输入的数据,我想随机化序列的数量。我已经添加了随机数据,但我不知道如何随机化使用的序列数。我计划使用series1、series2、…、seriesN的命名约定。我只是不知道该怎么办如何以编程方式生成随机JavaFX图表,java,random,javafx,series,scatter,Java,Random,Javafx,Series,Scatter,所以我想生成随机的JavaFX图表,比如散点图。我正在使用netbeans 7.4 我想随机化输入的数据,我想随机化序列的数量。我已经添加了随机数据,但我不知道如何随机化使用的序列数。我计划使用series1、series2、…、seriesN的命名约定。我只是不知道该怎么办 package basicscatter; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.ch
package basicscatter;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.ScatterChart;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;
import java.util.Random;
public class BasicScatter extends Application
{
@Override public void start(Stage stage)
{
stage.setTitle("Basic Scatter Chart");
final NumberAxis xAxis = new NumberAxis(0,50,5); //(start,end,step).
final NumberAxis yAxis = new NumberAxis(0,1000,100);
int count = 0;
int NumEntries;
int totalNumberOfSeries;
int x;
int y;
Random randomNumbers = new Random();
final ScatterChart<Number,Number> sc = new ScatterChart<Number,Number>(xAxis,yAxis);
xAxis.setLabel("X Axis");
yAxis.setLabel("Y Axis");
sc.setTitle("This is my Chart's Label");
totalNumberOfSeries = 1 + randomNumbers.nextInt(10);
//would like to generate random Series here instead of hardcoding the series
XYChart.Series series1 = new XYChart.Series();
XYChart.Series series2 = new XYChart.Series();
series1.setName("series 1");
series2.setName("series 2");
NumEntries = 1 + randomNumbers.nextInt(100);
while(count < NumEntries)
{
x = randomNumbers.nextInt(51);
y = randomNumbers.nextInt(1001);
series1.getData().add(new XYChart.Data(x,y));
count++;
}
NumEntries = 1 + randomNumbers.nextInt(100);
count = 0;
while(count < NumEntries)
{
x = randomNumbers.nextInt(51);
y = randomNumbers.nextInt(1001);
series2.getData().add(new XYChart.Data(x,y));
count++;
}
sc.getData().addAll(series1, series2);
Scene scene = new Scene(sc, 500, 400);
scene.getStylesheets().add(BasicScatter.class.getResource("Testcss.css").toExternalForm());
stage.setScene(scene);
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
package基本电池;
导入javafx.application.application;
导入javafx.scene.scene;
导入javafx.scene.chart.NumberAxis;
导入javafx.scene.chart.ScatterChart;
导入javafx.scene.chart.XYChart;
导入javafx.stage.stage;
导入java.util.Random;
公共类BasicCatter扩展了应用程序
{
@覆盖公共无效开始(阶段)
{
阶段。设置标题(“基本散点图”);
最终数字轴xAxis=新数字轴(0,50,5);/(开始、结束、步骤)。
最终编号axis yAxis=新编号axis(01000100);
整数计数=0;
国际货币基金组织;
整数系列;
int x;
int-y;
随机数=新随机数();
最终散射图sc=新散射图(X轴、Y轴);
xAxis.setLabel(“X轴”);
yAxis.setLabel(“Y轴”);
sc.setTitle(“这是我的图表标签”);
totalNumberOfSeries=1+随机数;
//希望在此处生成随机序列,而不是硬编码序列
XYChart.Series系列1=新的XYChart.Series();
XYChart.Series系列2=新的XYChart.Series();
系列1.集合名称(“系列1”);
系列2.集合名称(“系列2”);
NumEntries=1+随机数。nextInt(100);
while(计数
您最好在for循环中生成随机数目的序列对象,如下所示:
List<XYChart.Series> seriesList = new ArrayList<Series>
int randomCount = randomNumbers.nextInt(100);
for(int i=0;i<randomCount;i++){
XYChart.Series series = new XYChart.Series();
series.setName("series " + randomCount);
seriesList.add(series);
}
for(XYChart.Series series:seriesList){
series.getData().add(...);
...
}
您导入了什么包以使用ArrayList?我想你的意思是类似于ArrayList seriesList=new ArrayList();虽然我的建议和你对这行的建议都会弹出错误消息给我…所以我让它为我在前面的评论中添加的代码工作,这只是intellisense太愚蠢了。虽然我不知道你以后能给这个系列增加数字是什么意思。我不能100%确定如何确保序列以一种类似于series1、series2、…seriesN的方式分开。我会给它们命名,我的意思是识别它们,这样当我将序列添加到图表中时,我就可以添加不同的序列。@user3003304我不确定你的意思。您了解列表、数组或ArrayList的概念吗?听起来你想给每个变量起个名字,但这并不是必须的。你所需要的只是一个指向那个内存的指针,你可以将任意数量的内存(在合理范围内)存储在一个数组列表中。直到现在我才知道我可以用序列和图表来实现这一点。