📄 grastudent.java
字号:
package myprojects.studymanager;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class GraStudent extends AbstractStudent{
private Teacher s_teacher;
private int teacher_permit=0; //0未选 1选而未定 2选定 3被拒
public GraStudent(){}
public GraStudent(String name,int age,String studentID,
String department,int year,int month)
{
super(name,age,studentID,department,year,month);
}
public void setTeacher(Teacher teacher){
s_teacher.setT_name(teacher.getT_name());
s_teacher.setT_major(teacher.getT_major());
s_teacher.setT_department(teacher.getT_department());
s_teacher.setT_status(teacher.getT_status());
}
public Teacher getTeacher(){
if(teacher_permit!=0)
return s_teacher;
else return null;
}
public int hasTeacher()
{
return teacher_permit;
}
public void teacher_answer(int answer)
{
teacher_permit=answer;
}
/*public void showStudentInfo() {
System.out.println("GraStudent: ");
System.out.println("name: " + s_name +
"\tage: " + s_age +
"\tstudnetID: " + s_studentID +
"_department: " + s_department);
System.out.println("EnrollmentTime:");
System.out.println("Year:"+s_enrollmentyear.getYear()+
"\tMonth:"+s_enrollmentyear.getMonth());
}
*/
private class Teacher_select extends JDialog implements ActionListener
{ //先编teacher面板,再借用
JComboBox selectableteacher;
JLabel welcome;
JButton button1,button2;
ShowTeacher teacherinformation;
JLabel rest;
JTextField restnum;
File file;
LinkedList teacherlist;
Teacher_select(StudyManager frame)
{
super(frame,"选导师",true);
this.setSize(400,400);
Point p=frame.getLocation(); //定位dialog在母版中间
Dimension s=frame.getSize();
int x=(int)p.getX();
int y=(int)p.getY();
int sx=(int)s.getWidth();
int sy=(int)s.getHeight();
x=x+sx/2-300/2;
y=y+sy/2-200/2;
this.setLocation(x,y);
Container cp=this.getContentPane();
cp.setLayout(new FlowLayout());
file=new File(".\\data\\Teacher.study");
selectableteacher=new JComboBox();
welcome=new JLabel("-----请选择导师-----");
rest=new JLabel("该导师已选择人数:");
restnum=new JTextField(4) ;
teacherinformation=new ShowTeacher(frame);
teacherinformation.unmodifiable();
button1=new JButton("选择");
button2=new JButton("退出");
Box box1=Box.createHorizontalBox();
box1.add(button1);
box1.add(button2);
Box box2=Box.createHorizontalBox();
box2.add(welcome);
Box box3=Box.createHorizontalBox();
box3.add(rest);
box3.add(restnum);
box3.add(new JLabel("人"));
Box box=Box.createVerticalBox();
box.add(box2);
box.createVerticalStrut(10);
box.add(selectableteacher);
box.createVerticalStrut(10);
box.add(box3);
box.createVerticalStrut(10);
box.add(teacherinformation);
box.createVerticalStrut(10);
box.add(box1);
cp.add(box);
button1.addActionListener(this);
button2.addActionListener(this);
selectableteacher.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent mee)
{
Teacher temp=(Teacher)(selectableteacher.getSelectedItem());
teacherinformation.setTeacher(temp.getT_ID());
int i=temp.getT_contain()-temp.get_Rest();
restnum.setText(""+i);
}
});
try{
FileInputStream input1=new FileInputStream(file);
ObjectInputStream input2=new ObjectInputStream(input1);
teacherlist=(LinkedList)input2.readObject();
input1.close();
input2.close();
ListIterator teacheriterator=teacherlist.listIterator();
while(teacheriterator.hasNext())
{
Teacher addteacher=(Teacher)teacheriterator.next();
if(addteacher.get_Rest()!=0)
{
selectableteacher.addItem(addteacher);
}
}
}
catch(Exception tme)
{
tme.printStackTrace();
}
}
public void actionPerformed(ActionEvent me)
{
if(me.getSource()==button1)
{
Object[]options={"是","取消"};
int j=
JOptionPane.showOptionDialog(this,"确定选择这个导师","确定选择",
JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null,
options,null);
if(j==0)
{
try
{
Teacher select=(Teacher)selectableteacher.getSelectedItem();
if(select.T_chosen(s_studentID))
{
teacher_permit=1;
s_teacher=new Teacher(select);
button1.setEnabled(false);
FileOutputStream one=new FileOutputStream(file);
ObjectOutputStream two=new ObjectOutputStream(one);
two.writeObject(teacherlist);
one.close();
two.close();
}
else
JOptionPane.showMessageDialog(this,
"你已选过该老师,请选择其他","Warning",
JOptionPane.ERROR_MESSAGE);
}
catch(Exception gse)
{
gse.printStackTrace();
}
}
else if(j==1)
{
}
}
else if(me.getSource()==button2)
{
try
{
dispose();
}
catch(Exception sdf)
{
sdf.printStackTrace();
}
}
}
void selectpanel() //其他类不能用show,只好转到这里
{
this.show();
}
}
public Teacher_select selectTeacher(StudyManager frame)
{
return new Teacher_select(frame);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -