编辑: 过于眷恋 | 2017-09-27 |
编码思路依据"03 对项目结构的分析设计" .
1、根据
05 节基础和
06 节的知识.swing 中界面类至少已经有类了. swing 包创建好的内容如下左图示.其中前文没有提及的 Welcome 类和 Login 类,初始建立的代码应如下右图 示.
2、设计 Login 界面类,依据
03 文档的分析设计.这里只给出最终效果,如下图,至于如何设计界面,请参看
06 文档.注意两个文本框的 Variable 属性,分别改为了 txtUserName 和txtPassword. 编写"登陆"按钮事件代码,这里也是直接给代码,不再重复如何打开代码设计界面(参看
06 文档) .如果登 陆成功会打开 welcome 界面. public void actionPerformed(ActionEvent e) { try { boolean success=LoginLogic.getRepository() .IsStudentExistsAsName(txtUserName.getText());
if(success && txtPassword.getText().equals("88888888")) package swing;
import javax.swing.JFrame;
public class Welcome extends JFrame{ } package swing;
import javax.swing.JFrame;
public class Login extends JFrame { } { Welcome welcome=new Welcome();
welcome.setVisible(true);
welcome.setBounds(100, 100, 600, 600);
welcome.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} } catch (SQLException e1) { e1.printStackTrace();
} } 编写"重置"按钮事件代码: public void actionPerformed(ActionEvent e) { txtPassword.setText("");
txtUserName.setText("");
}
3、设计 welcome 界面类. 编写"学生信息"按钮事件,注意需要给显示学生信息逻辑传入学生序号值,这里传值 0: public void actionPerformed(ActionEvent e) { try { DisplayStudentLogic.getRepository().init(0);
} catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace();
} WelcomeLogic.getRepository().OpenDisplayStudent();
} 编写"课程信息"按钮事件: public void actionPerformed(ActionEvent e) { WelcomeLogic.getRepository().OpenDisplayCourse();
} 编写"选课信息"按钮事件: public void actionPerformed(ActionEvent e) { WelcomeLogic.getRepository().OpenDisplaySc();
}
4、设计 DisplayStudent 界面类. 注意
3 个文本框,修改了 Variable 属性,分别命名为 txtSno、txtSname 和txtSage. 编写"上一条"按键事件代码: public void actionPerformed(ActionEvent e) { try { DisplayStudentLogic.getRepository().getPrev();
Student s = DisplayStudentLogic.getRepository().thisStudent;
txtSno.setText(s.sno);
txtSname.setText(s.sname);
txtSage.setText(String.valueOf(s.sage));
} catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace();
} } 编写"下一条"按键事件代码: public void actionPerformed(ActionEvent e) { try { DisplayStudentLogic.getRepository().getNext();
Student s = DisplayStudentLogic.getRepository().thisStudent;
txtSno.setText(s.sno);
txtSname.setText(s.sname);
txtSage.setText(String.valueOf(s.sage));
} catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace();
} } 编写"新增学生"按键事件代码: public void actionPerformed(ActionEvent e) { DisplayStudentLogic.getRepository().addStudent();
} 编写"修改学生"按键事件代码,注意以下代码需要给编辑学生逻辑传入学生值: public void actionPerformed(ActionEvent e) { EditStudentLogic.getRepository().init(DisplayStudentLogic .getRepository().thisStudent);
DisplayStudentLogic.getRepository().editStudent();
} 编写"显示成绩"按键事件代码,注意以下代码需要给编辑学生逻辑传入学生值: public void actionPerformed(ActionEvent e) { try { DisplayGradeByStudentLogic.getRepository().init( DisplayStudentLogic.getRepository().thisStudent);