📄 bachlorstudent.java
字号:
package myprojects.studymanager;
import java.util.*;
import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
public class BachlorStudent extends AbstractStudent
{
private Major s_Major;
private boolean hasMajor=false;
public BachlorStudent(){
}
public BachlorStudent(String name,int age,String studentID,
String department,int year,int month)
{
super(name,age,studentID,department,year,month);
}
private class Major_select extends JDialog implements ActionListener
{
JComboBox selectablemajor;
JLabel welcome;
JButton button1,button2;
JTextArea majorinformation;
JLabel rest;
JTextField restnum;
File file;
LinkedList majorlist;
Major_select(JFrame frame)
{
super(frame,"选系",true);
this.setSize(300,200);
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\\Major.study");
selectablemajor=new JComboBox();
welcome=new JLabel("-----请选择专业-----");
rest=new JLabel("该专业已选人数:");
restnum=new JTextField(4) ;
majorinformation=new JTextArea(4,20);
majorinformation.setEnabled(false);
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(selectablemajor);
box.createVerticalStrut(10);
box.add(box3);
box.createVerticalStrut(10);
box.add(majorinformation);
box.createVerticalStrut(10);
box.add(box1);
cp.add(box);
button1.addActionListener(this);
button2.addActionListener(this);
selectablemajor.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent mee)
{
Major temp=(Major)(selectablemajor.getSelectedItem());
majorinformation.setText(temp.getM_information());
int i=temp.getM_contain()-temp.get_Rest();
restnum.setText(""+i);
}
});
try{
FileInputStream input1=new FileInputStream(file);
ObjectInputStream input2=new ObjectInputStream(input1);
majorlist=(LinkedList)input2.readObject();
input1.close();
input2.close();
ListIterator majoriterator=majorlist.listIterator();
while(majoriterator.hasNext())
{
Major addmajor=(Major)majoriterator.next();
if(addmajor.get_Rest()!=0)
{
selectablemajor.addItem(addmajor);
}
}
}
catch(Exception mme)
{
mme.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)
{
Major select=(Major)selectablemajor.getSelectedItem();
s_Major=new Major(select.getM_name(),
select.getM_information());//学生只要知道专业名称和概况
hasMajor=true;
select.M_chosen(s_studentID);
int i=select.get_Rest();
i=s_Major.getM_contain()-i;
restnum.setText(""+i);
button1.setEnabled(false);
try
{
FileOutputStream one=new FileOutputStream(file);
ObjectOutputStream two=new ObjectOutputStream(one);
two.writeObject(majorlist);
one.close();
two.close();
}
catch(Exception mse)
{
mse.printStackTrace();
}
}
else if(j==1)
{
}
}
else if(me.getSource()==button2)
{
dispose();
}
}
void selectpanel() //其他类不能用show,只好转到这里
{
this.show();
}
}
public Major_select selectMajor(JFrame frame)
{
return new Major_select(frame);
}
public boolean hasMajor(){
return hasMajor;
}
public Major getMajor()
{
return s_Major;
}
public BachlorStudent returnreference()
{
return this;
}
public void showStudentInfo() {
System.out.println("BachlorStudent: ");
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());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -