我正在为学校完成一个 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();
}
}