📄 historicalinfopanel.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 + -