⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 majormanagerpanel.java

📁 一个可以存储和打印成绩单的系统
💻 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 + -