簡體   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