📄 majormanagerpanel.java
字号:
package org.signsmile.view;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import org.minjey.cjsjk.core.ModelManager;
import org.minjey.cjsjk.core.SysDict;
import org.minjey.cjsjk.model.Major;
import org.minjey.cjsjk.model.MajorRecord;
import org.minjey.cjsjk.model.MajorType;
import org.minjey.cjsjk.model.Station;
import org.minjey.cjsjk.model.MajorLength;
import org.signsmile.view.util.MyMonthChooser;
public class MajorManagerPanel extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private ModelManager modelManager = MainFrame.getModelManager();
JTextField jtaName, jtaCode, jtfEnrollmentTime, jtfGraduateTime;
DefaultComboBoxModel jcbSpace, jcbSLength, jcbROfSchool, jcbSchoolType;
JTextArea jtaRemark;
JButton jbtCancel, jbtUpdate, jbtSubmit;
JPanel jpMain;
MouseAdapter mAdapterEnrollment, mAdapterGraduate;
Major major;
public MajorManagerPanel() {
createView();
setEditable(true);
major = new Major();
}
public MajorManagerPanel(Major major) {
modelManager.beforeEdit(major);
createView();
setEditable(false);
this.major = major;
showData();
//modelManager = MainFrame.getModelManager();
}
private void showData() {
if (this.major != null) {
jtaName.setText(major.getName());
jtaCode.setText(major.getCode());
jcbSpace.setSelectedItem(major.getStation());
jcbROfSchool.setSelectedItem(major.getMajorrecord());
jcbSchoolType.setSelectedItem(major.getMajortype());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");
jtfEnrollmentTime.setText(sdf.format(major.getIntime()));
//JOptionPane.showMessageDialog(null, major.getIntime());
// .getEtime()));
// 没有存储.....
jcbSLength.setSelectedItem(major.getMajorlength());
try {
jtfGraduateTime.setText(sdf.format(major.getOuttime()));
} catch (RuntimeException e) {
jtfGraduateTime.setText("");
}
}
}
private boolean assembleMajor() {
if ("".equals(jtaName.getText()) || jtaName.getText() == null) {
JOptionPane.showMessageDialog(null, "请输入专业名称!");
return false;
} else if ("".equals(jcbSpace.getSelectedItem().toString())
|| jcbSpace.getSelectedItem() == null) {
JOptionPane.showMessageDialog(null, "请选择所属函授站!");
return false;
} else if ("".equals(jcbSLength.getSelectedItem().toString())
|| jcbSLength.getSelectedItem() == null) {
JOptionPane.showMessageDialog(null, "请选择学制!");
return false;
} else if ("".equals(jcbROfSchool.getSelectedItem().toString())
|| jcbROfSchool.getSelectedItem() == null) {
JOptionPane.showMessageDialog(null, "请选择学历层次!");
return false;
} else if ("".equals(jcbSchoolType.getSelectedItem().toString())
|| jcbSchoolType.getSelectedItem() == null) {
JOptionPane.showMessageDialog(null, "请选择授课类型!");
return false;
} else if ("".equals(jtfEnrollmentTime.getText())
|| jtfEnrollmentTime.getText() == null) {
JOptionPane.showMessageDialog(null, "请选择入学时间!");
return false;
} else if ("".equals(jtfGraduateTime.getText())
|| jtfEnrollmentTime.getText() == null) {
JOptionPane.showMessageDialog(null, "请选择毕业时间!");
return false;
}
major.setName(jtaName.getText());
major.setCode(jtaCode.getText());
major.setStation((Station) jcbSpace.getSelectedItem());
major.setMajorrecord((MajorRecord) jcbROfSchool.getSelectedItem());
major.setMajortype((MajorType) jcbSchoolType.getSelectedItem());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");
major.setMajorlength((MajorLength) jcbSLength.getSelectedItem());
try {
// major.getEnrolltime().setEtime(
// sdf.parse(jtfEnrollmentTime.getText()) );
// 没法储存..........................................
major.setIntime(sdf.parse(jtfEnrollmentTime.getText()));
major.setOuttime(sdf.parse(jtfGraduateTime.getText()));
} catch (ParseException e) {
major.setOuttime(null);
}
return true;
}
public void createView() {
JPanel jpLeftFirst = new JPanel();
jpLeftFirst.setLayout(new GridLayout(8, 1));
JPanel jpRightFirst = new JPanel();
jpRightFirst.setLayout(new GridLayout(8, 1));
JLabel jlName = new JLabel("名称:");
jlName.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlName);
jpRightFirst.add(jtaName = new JTextField(20));
jtaName.setEditable(false);
JLabel jlCode = new JLabel("专业代码:");
jlCode.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlCode);
jpRightFirst.add(jtaCode = new JTextField(20));
jtaCode.setEditable(false);
JLabel jlSpace = new JLabel("函授站:");
jlSpace.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlSpace);
jpRightFirst.add(new JComboBox(jcbSpace = new DefaultComboBoxModel()));
JLabel jlROfSchool = new JLabel("学历层次:");
jlROfSchool.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlROfSchool);
jpRightFirst.add(new JComboBox(
jcbROfSchool = new DefaultComboBoxModel()));
JLabel jlSchoolType = new JLabel("授课类型:");
jlSchoolType.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlSchoolType);
jpRightFirst.add(new JComboBox(
jcbSchoolType = new DefaultComboBoxModel()));
JLabel jlEnrollmentTime = new JLabel("入学时间:");
jlEnrollmentTime.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlEnrollmentTime);
jpRightFirst.add(jtfEnrollmentTime = new JTextField());
jtfEnrollmentTime.setEditable(false);
JLabel jlSLength = new JLabel("学制:");
jlSLength.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlSLength);
jpRightFirst
.add(new JComboBox(jcbSLength = new DefaultComboBoxModel()));
JLabel jlGraduateTime = new JLabel("毕业时间:");
jlEnrollmentTime.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeftFirst.add(jlGraduateTime);
jpRightFirst.add(jtfGraduateTime = new JTextField());
jtfGraduateTime.setEditable(false);
JPanel jpLeft = new JPanel(new GridLayout(3, 1));
JPanel jpRight = new JPanel(new GridLayout(3, 1));
jpLeft.add(jpLeftFirst);
jpRight.add(jpRightFirst);
JLabel jlRemark = new JLabel("备注:");
jlRemark.setHorizontalAlignment(SwingConstants.RIGHT);
jpLeft.add(jlRemark);
jpRight.add(jtaRemark = new JTextArea(), BorderLayout.CENTER);
jtaRemark.setBorder(jtaName.getBorder());
JPanel jpButton = new JPanel();
jpButton.add(jbtUpdate = new JButton("修改"));
jpButton.add(jbtCancel = new JButton("取消"));
jpButton.add(jbtSubmit = new JButton("确定"));
jpMain = new JPanel();
jpMain.setLayout(new BorderLayout());
jpMain.add(jpLeft, BorderLayout.WEST);
jpMain.add(jpRight, BorderLayout.CENTER);
this.setLayout(new BorderLayout());
this.add(jpMain, BorderLayout.CENTER);
this.add(jpButton, BorderLayout.SOUTH);
jbtCancel.addActionListener(this);
jbtUpdate.addActionListener(this);
jbtSubmit.addActionListener(this);
jtfEnrollmentTime.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
}
@Override
public void focusLost(FocusEvent e) {
if ("".equals(jtfEnrollmentTime.getText())
|| jtfEnrollmentTime.getText() == null)return;
if ("".equals(jcbSLength.getSelectedItem().toString())
|| jcbSLength.getSelectedItem() == null)return;
jtfGraduateTime.setText(calGraduateTime(jtfEnrollmentTime
.getText().trim(), (MajorLength) jcbSLength
.getSelectedItem()));
}
});
jcbSLength.addListDataListener(new ListDataListener() {
@Override
public void contentsChanged(ListDataEvent e) {
if ("".equals(jtfEnrollmentTime.getText())
|| jtfEnrollmentTime.getText() == null)return;
if ("".equals(jcbSLength.getSelectedItem().toString())
|| jcbSLength.getSelectedItem() == null)return;
jtfGraduateTime.setText(calGraduateTime(jtfEnrollmentTime
.getText().trim(), (MajorLength) jcbSLength
.getSelectedItem()));
}
@Override
public void intervalAdded(ListDataEvent e) {
}
@Override
public void intervalRemoved(ListDataEvent e) {
}
});
}
private String calGraduateTime(String enrollmentTiem, MajorLength mLength) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");
Date enrollDate = null;
try {
enrollDate = sdf.parse(enrollmentTiem);
} catch (ParseException e) {
e.printStackTrace();
}
if (enrollDate != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(enrollDate);
calendar.add(Calendar.MONTH, (mLength.getLength() * 6));
Date cc = calendar.getTime();
return sdf.format(cc);
}
return null;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jbtUpdate) {
setEditable(true);
} else if (e.getSource() == jbtCancel) {
WelcomePanel welcomePanel = new WelcomePanel();
MainFrame.GetMainFrame().switchView(welcomePanel);
} else if (e.getSource() == jbtSubmit) {
saveData();
}
}
private void setEditable(boolean bool) {
jtaName.setEditable(bool);
jtaCode.setEditable(bool);
jtaRemark.setEditable(bool);
jtfEnrollmentTime.setBackground(jtaName.getBackground());
jtfGraduateTime.setBackground(jtaName.getBackground());
jtaRemark.setBackground(jtaName.getBackground());
if (bool) {
jtfEnrollmentTime
.addMouseListener(mAdapterEnrollment = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int x = (int) (MainFrame.GetMainFrame()
.getLocation().getX() + (int) (MainFrame
.GetMainFrame().getWidth() * 0.27));
int y = (int) (MainFrame.GetMainFrame()
.getLocation().getY()
+ jtfEnrollmentTime.getLocation().getY() + 60D);
MyMonthChooser w = MyMonthChooser.getInstance(x, y,
null, jtfEnrollmentTime);
w.showDialog(true);
}
});
jtfGraduateTime
.addMouseListener(mAdapterGraduate = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int x = (int) (MainFrame.GetMainFrame()
.getLocation().getX() + (int) (MainFrame
.GetMainFrame().getWidth() * 0.27));
int y = (int) (MainFrame.GetMainFrame()
.getLocation().getY()
+ jtfGraduateTime.getLocation().getY() + 60D);
MyMonthChooser w = MyMonthChooser.getInstance(x, y,
null, jtfGraduateTime);
w.showDialog(true);
}
});
Object[] stationArray = SysDict.getSTATION().values().toArray();
for (int i = 0; i < stationArray.length; i++) {
jcbSpace.addElement(stationArray[i]);
}
Object[] rOfSchoolArray = SysDict.getMAJORRECORD().values()
.toArray();
for (int i = 0; i < rOfSchoolArray.length; i++) {
jcbROfSchool.addElement(rOfSchoolArray[i]);
}
Object[] schoolTypeArray = SysDict.getMAJORTYPE().values()
.toArray();
for (int i = 0; i < schoolTypeArray.length; i++) {
jcbSchoolType.addElement(schoolTypeArray[i]);
}
Object[] sLengthArray = SysDict.getMAJORLENGTH().values().toArray();
for (int i = 0; i < sLengthArray.length; i++) {
jcbSLength.addElement(sLengthArray[i]);
}
} else {
jtfEnrollmentTime.removeMouseListener(mAdapterEnrollment);
jtfGraduateTime.removeMouseListener(mAdapterGraduate);
jcbSpace.removeAllElements();
jcbROfSchool.removeAllElements();
jcbSchoolType.removeAllElements();
jcbSLength.removeAllElements();
}
}
private void saveData() {
if (assembleMajor()) {
// station对象直接拿去储存
modelManager.save(major);
setEditable(false);
showData();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -