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

📄 historicalinfopanel.java

📁 一个优秀的干洗店管理系统
💻 JAVA
字号:
package view.panel.exchange;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSpinner;
import javax.swing.JTable;
import javax.swing.SpinnerModel;
import javax.swing.SpinnerNumberModel;
import javax.swing.table.DefaultTableModel;

import view.common.JDatePicker;
import control.exchange.HistorycalInfoPanelListener;

public class HistoricalInfoPanel extends JPanel {

	// =====历史信息面板分成两个面板=====
	private JPanel searchPanel;
	private JScrollPane tableScroll;

	// -----searchPanel-----
	private JPanel inputPanel, buttonPanel;
	// 开始时间,截止时间,时
	private JLabel startTime, endTime, hourLabel;
	// 开始日期选择框,截止日期选择框(JDatePicker)
	private JComboBox startDate, endDate;
	// 起始和截止时段选择框
	private JSpinner hourSpinnerS, hourSpinnerE;
	// 按钮 查询,打印
	private JButton searchButton, printButton;

	// -----tableScroll-----
	private JTable infoTable;
	
	public HistoricalInfoPanel(JDialog dialog) {
		this.setSize(630, 440);
		this.setLayout(new BorderLayout());
		initComponent();
		this.add(buildSearchPanel(dialog), BorderLayout.NORTH);
		this.add(buildScrollPane());
	}

	public JScrollPane buildScrollPane() {
		if (tableScroll == null) {
			tableScroll = new JScrollPane(buildInfoTable());
			tableScroll.setVerticalScrollBar(new JScrollBar());
		}
		return tableScroll;
	}

	/**
	 * 构造一个用来显示交班信息列表的表格
	 * 
	 * @return JTable
	 */
	public JTable buildInfoTable() {
		if (infoTable == null) {
			String[] names = { "交班时间", "交班员工", "接班员工", "前班结余", "现金收入", "会员卡收入", "总营业额", "上交营业额",
			      "下拨营业额", "当前结余" };
			Object[][] data = {};
			// 构造TableModel模型,不能被编辑
			DefaultTableModel model = new DefaultTableModel(data, names) {
				public boolean isCellEditable(int rowIndex, int columnIndex) {
					return false;
				}
			};
			infoTable = new JTable(model);
			infoTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		}
		return infoTable;
	}

	/**
	 * 构造并且给searchPanel布局
	 * 
	 * @return JPanel
	 */
	public JPanel buildSearchPanel(JDialog dialog) {
		if (searchPanel == null) {
			searchPanel = new JPanel();
			inputPanel = new JPanel();
			buttonPanel = new JPanel();

			inputPanel.setLayout(new FlowLayout());
			inputPanel.add(startTime);
			inputPanel.add(startDate);
			inputPanel.add(buildHourSpinnerS());
			inputPanel.add(hourLabel);

			inputPanel.add(endTime);
			inputPanel.add(endDate);
			inputPanel.add(buildHourSpinnerE());
			inputPanel.add(hourLabel);

			buttonPanel.add(buildSearchButton());
			buttonPanel.add(buildPrintButton(dialog));

			searchPanel.setLayout(new BorderLayout());
			searchPanel.add(inputPanel);
			searchPanel.add(buttonPanel, BorderLayout.EAST);
		}
		return searchPanel;
	}

	public JButton buildSearchButton() {
		if (searchButton == null) {
			searchButton = new JButton("查询");
			searchButton.addActionListener(new HistorycalInfoPanelListener(this));
		}
		return searchButton;
	}

	public JButton buildPrintButton(JDialog dialog) {
		if (printButton == null) {
			printButton = new JButton("退出");
			printButton.addActionListener(new HistorycalInfoPanelListener(this, dialog));
		}
		return printButton;
	}

	public JSpinner buildHourSpinnerS() {

		SpinnerModel hourModel = new SpinnerNumberModel(13, 0, 23, 1);
		hourSpinnerS = new JSpinner();
		hourSpinnerS.setModel(hourModel);
		return hourSpinnerS;
	}

	/**
	 * 获取选择的开始时间,将它转化成字符串,以用于以后的事件处理
	 * 
	 * @return
	 * @throws ParseException
	 */
	public String getStartTime() throws ParseException {
		String sTime = null;
		SpinnerNumberModel snm = (SpinnerNumberModel) hourSpinnerS.getModel();
		Integer A = (Integer) snm.getValue();
		JDatePicker startDate1 = (JDatePicker) startDate;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy'-'MM'-'dd");
		String dateStr = sdf.format(startDate1.getSelectedDate());

		sTime = String.valueOf(dateStr.subSequence(0, 10)) + " " + A.toString();
		return sTime;
	}

	/**
	 * 获取选择的截止时间,将它转化成字符串,以用于以后的事件处理
	 * 
	 * @return
	 * @throws ParseException
	 */
	public String getEndTime() throws ParseException {
		String eTime = null;
		SpinnerNumberModel snm = (SpinnerNumberModel) hourSpinnerE.getModel();
		Integer A = (Integer) snm.getValue();
		JDatePicker startDate1 = (JDatePicker) endDate;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy'-'MM'-'dd");
		String dateStr = sdf.format(startDate1.getSelectedDate());

		eTime = String.valueOf(dateStr.subSequence(0, 10)) + " " + A.toString();
		return eTime;
	}

	public JSpinner buildHourSpinnerE() {
		SpinnerModel hourModel = new SpinnerNumberModel(13, 0, 23, 1);
		hourSpinnerE = new JSpinner();
		hourSpinnerE.setModel(hourModel);
		SpinnerNumberModel snm = (SpinnerNumberModel) hourSpinnerE.getModel();
		Integer A = (Integer) snm.getValue();
		int m = A.intValue();
		return hourSpinnerE;
	}

	/**
	 * 初始化无需添加事件处理的组件,包括文本标签,文本输入框
	 */
	public void initComponent() {
		initJLabel();
		initJComboBox();
	}

	/**
	 * 开始日期选择框,截止日期选择框(JDatePicker),时段组合框
	 */
	public void initJComboBox() {
		startDate = new JDatePicker();
		startDate.setSize(12, 4);
		endDate = new JDatePicker();
		endDate.setSize(12, 4);
		JDatePicker startDate1 = (JDatePicker) startDate;
	}

	/**
	 * 初始化面板中标签属性
	 */
	public void initJLabel() {
		startTime = new JLabel("开始时间");
		endTime = new JLabel("截止时间");
		hourLabel = new JLabel("时");
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -