本学期的Java的设计,我的设计题目是学生信息的管理,在老师交了Javafx后,我利用里更简单的scenebulider来创建页面,关于学生信息的保存和读入,我利用了比较经典的代码
下面是保存代码
File fe1=new File("D:/student1.txt");//创建file的对象
PrintWriter wt;
try{
wt=new PrintWriter(fe1);
wt.print(i);
wt.print(" ");
for(int j=0;j<i;j++) {
wt.print(a[j].getname());
wt.print(" ");
wt.print(a[j].getg());
wt.print(" ");
wt.print(a[j].getn());
wt.print(" ");
wt.print(a[j].getd().gety());
wt.print(" ");
wt.print(a[j].getd().getm());
wt.print(" ");
wt.print(a[j].getd().getday());
wt.print(" ");
wt.print(a[j].getstu());
wt.print(" ");
wt.print(a[j].getcla());
wt.print(" ");
wt.print(a[j].gettel());
wt.print(" ");
}
wt.close();
}
catch(Exception sw) {
System.out.println(sw.toString());
}
而文件的读入我是在每一个功能实现前写上了读入函数,这样做可能会降低错误率但是会有代码的冗余,这样会照成运行的效率不够高
File fe1=new File("D:/student1.txt");
if(i!=0 && m==0) {
try {
Scanner st=new Scanner(fe1);
i=st.nextInt();//从我的文件里读入学生的个数
for(int j=0;j<i;j++) {
a[j]=new student1(st.next(),st.next(),st.next(),new date1(st.nextInt(),st.nextInt(),st.nextInt()),st.nextInt(),st.nextInt(),st.next());//按照类型来读入数据
}
}
catch(Exception s) {
System.out.println(s.toString());
}}
还有关于scenebuilder的一些个人理解:
关于scenebuilder的控件,要通过他来响应一些事件就必须在Java中创建函数并且将函数加入on action中
还有如果我们的界面中有按钮的话fxml要加入
就是包名加上我们控制这个界面的Java的类名
还要注意我们的scenebuilder中的
是否和我们的fxml一致。
我们也要修改
public void enter() throws Exception {
Stage arg=new Stage();
AnchorPane gp = new AnchorPane();
FXMLLoader loader = new FXMLLoader();
loader.setLocation(studentController.class.getResource("menu.fxml"));//这里的.class和fxml一个是看我们Java文件的类名,一个是我们控制的fxml的名字
gp = (AnchorPane) loader.load();
Scene s=new Scene(gp);
arg.initModality(Modality.APPLICATION_MODAL);
arg.setScene(s);
arg.show();
}
这样就可以利用scenebuilder创建出一个简单的页面了