私は学校の Java プロジェクトを仕上げていますが、ある時点で行き詰っています。
割り当ては、タスクを保存して追加/編集または削除し、その情報をコンピューターのディレクトリのテキストファイルに保存できるタスクプランナーを作成することです。
このように、アプリを開くたびに、保存されたタスク情報が GUI に読み込まれます。
私が直面している問題は、(読み込み時に) GUI の特定のテキストフィールドに情報を挿入する必要があることです...ただし、すべてのテキストフィールドを完了する必要がない場合があります-つまり、必須ではありません-
そのため、.setText() メソッドに空の引数があり、コードが機能しないことがあります...
空の引数を検出するたびに「」(スペース)を挿入して問題を解決しようとしましたが、新しい空のTextFieldで新しいGUIウィンドウをクリックすると自動的にスペースがあり、ユーザーは何かを書き込む前にバックスペースを押す必要があります....
これに対するより良い解決策はありますか?
すべてのタスクをロードするコードは次のとおりです...
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadTask extends Planner {
public static void read(){
String[] myArray = new String[8];
String line = "";
TaskWindowNew currentTask = null;
try
{
BufferedReader br = new BufferedReader(new FileReader("PlannerText.txt"));
while (( line = br.readLine()) !=null)
{
myArray = line.split("\\|");
for(int i=0;i<myArray.length;i++)
{
if( myArray[i].isEmpty())
{
myArray[i] = "yoooo";
}
}
System.out.println(myArray.toString());
try{
currentTask = new TaskWindowNew();
currentTask.popupFrame.setVisible(false);
// IMPORTANT = If one or more field(s) is left empty the .doClick function will not work
// we need to find a solution for this.
currentTask.titleField.setText(myArray[1]);
currentTask.minuteField.setText(myArray[2]);
currentTask.hourField.setText(myArray[3]);
currentTask.daysMonthField.setText(myArray[4]);
currentTask.MonthField.setText(myArray[5]);
currentTask.daysWeekField.setText(myArray[6]);
currentTask.specialSymbolField.setText(myArray[7]);
//this emulates the action of the OK-button in the new task window !
currentTask.buttonOk.doClick();
} catch (ArrayIndexOutOfBoundsException e)
{
}
}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
updateScrollPanel();
}
}