繁体   English   中英

Java:在以下情况下如何从保存文件加载?

[英]Java: How can I load from a save file in the following situation?

我正在制作一个图形编辑器作为一项任务。 在继续之前,我必须提到每个节点都有 x 和 y 坐标、宽度和高度以及名称,并且每条边连接 2 个节点。 我们必须创建自定义保存文件,如下所示: - 第一行包含节点数 (N) 和边数 (E) - 接下来的 N 行,每行描述一个节点(x、y、宽度、高度、名称) - 下一行E 行,每行描述一条边(每条边由它连接的节点的索引描述)此类文件的示例是:

3 2
2 0 1 1 Name1
1 1 1 1 Name2
3 2 1 1 Name3
0 1
1 2

现在我必须创建一个基于保存文件生成图形的加载方法。 我认为我必须逐行扫描文件并创建图表。 然而,它的实施给我带来了一些麻烦。 让我们考虑第一行3 2 我应该扫描 3 和 2,然后创建 3 个节点和 2 个边。 但是,我不确定如何正确执行此操作,因为每当我创建节点时,我都会使用他的 x、y、宽度、高度、名称(位于保存文件的下一行),如下所示:

Node A = new Node(2, 0, 1, 1, "Name1");
Node B = new Node(1, 1, 1, 1, "Name2");
Node C = new Node(3, 2, 1, 1, "Name3");

例如。

我也不确定如何命名节点 object,因为我必须创建的每个节点都必须具有上面不同的变量名称(如 ABC),因为我将它们放在 ArrayList 中。 我的意思是我不能只从保存文件中读取 3,然后通过执行以下操作来创建图形:

for (i=0; i < nrReadFromSaveFileWhichIs3InThatCase ; i++){
     Node A = new Node (??????)
     //add the node to the arraylist
     ...

}

如果您需要更多信息,请告诉我,我会将更多代码放在这里作为编辑。 希望这已经足够清楚了,感谢您的宝贵时间!

据我了解,您在循环内创建节点对象时遇到问题,我建议您创建一个节点数组,每次读取一行节点时将其存储在数组中:

 // get Nbr_of_nodes by reading the file
 Node myNodes[] = new Node[Nbr_of_nodes] ;
 for (i=0; i < Nbr_of_nodes ; i++){
 //create and add the node to the ArrayList
  myNodes[] = new Node(x, y, w, h, "Name");
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM