📄 transactionframe.java
字号:
import java.awt.Color;
import java.awt.Dimension;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
public class TransactionFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel enrolPersonInfoPanel = null;
private JPanel servicePanel = null;
private JLabel nameLabel = null;
private JComboBox nameComboBox = null;
private JLabel dateLabel = null;
private JTextField dateTextField = null;
private JLabel feeLabel = null;
private JTextField feeTextField = null;
private JButton OKButton = null;
private JButton exitButton = null;
// 用表格来表示列表
DefaultTableModel enrolInfoModel = new DefaultTableModel();
JTable enrolInfoTable = new JTable(enrolInfoModel);
Vector enrolInfoList=new Vector();
Vector serviceInfoList=new Vector();
EnrolRoom enrolRoom=new EnrolRoom();
private JLabel hingLabel = null;
/**
* This is the default constructor
*/
public TransactionFrame() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(333, 339);
this.setName("TransactionFrame");
this.setContentPane(getJContentPane());
this.setTitle("交易");
/////////////////////////////////////////////
enrolInfoModel.addColumn("登记号");
enrolInfoModel.addColumn("姓名");
enrolInfoModel.addColumn("电话");
enrolInfoTable.setPreferredScrollableViewportSize(new Dimension(250, 100));
enrolInfoTable.setBackground(new Color(255, 255, 210));
enrolInfoTable.setRowHeight(20);
enrolInfoTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane reserveInfoscrollpane = new JScrollPane(enrolInfoTable);
enrolPersonInfoPanel.add(reserveInfoscrollpane);
/////////////////////////////////////////////
//从EnrolRoom获取的信息: 入住客人信息,部分信息,为了安全性着想
Enrol enrolInfo=new Enrol();
enrolInfoList = enrolRoom.getEnrolInfoForWaiterList();
//将预订客人信息表放到Table中
for(int i=0;i<enrolInfoList.size();i++)
{
enrolInfo=(Enrol)enrolInfoList.get(i);
enrolInfoModel.addRow(new Object[]{
Integer.toString(enrolInfo.enrolGuest.id),
enrolInfo.enrolGuest.name.toString().trim(),
enrolInfo.enrolGuest.phone.toString().trim()
});
}
//读取数据库中服务列表,显示在combox中
serviceInfoList=enrolRoom.getServiceInfoList();
String name;
for(int i=0;i<serviceInfoList.size();i++){
Service service=new Service();
service=(Service)serviceInfoList.get(i);
service.printServiceInfo();
name=service.name;
nameComboBox.addItem(name);
}
//将当前日期记录成字符串格式,以便存到数据库,到时候,又可以转化回来成为日期对象
dateTextField.setEditable(false);
SimpleDateFormat simpledf = new SimpleDateFormat("yyyy-MM-dd");
Date currentDate = new Date();
String strCurrentDate = simpledf.format(currentDate)+"";
dateTextField.setText(strCurrentDate);
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getReservePersonInfoPanel(), null);
jContentPane.add(getServicePanel(), null);
}
return jContentPane;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getReservePersonInfoPanel() {
if (enrolPersonInfoPanel == null) {
hingLabel = new JLabel();
hingLabel.setText("登记客人列表");
enrolPersonInfoPanel = new JPanel();
enrolPersonInfoPanel.setBounds(new java.awt.Rectangle(16,15,292,127));
enrolPersonInfoPanel.setBackground(new java.awt.Color(204,204,204));
enrolPersonInfoPanel.add(hingLabel, null);
}
return enrolPersonInfoPanel;
}
/**
* This method initializes servicePanel
*
* @return javax.swing.JPanel
*/
private JPanel getServicePanel() {
if (servicePanel == null) {
feeLabel = new JLabel();
feeLabel.setBounds(new java.awt.Rectangle(13,51,42,18));
feeLabel.setText("服务费");
dateLabel = new JLabel();
dateLabel.setBounds(new java.awt.Rectangle(13,88,59,18));
dateLabel.setText("交易日期");
nameLabel = new JLabel();
nameLabel.setBounds(new java.awt.Rectangle(13,11,27,18));
nameLabel.setText("服务");
servicePanel = new JPanel();
servicePanel.setLayout(null);
servicePanel.setBounds(new java.awt.Rectangle(13,153,295,137));
servicePanel.setBackground(new java.awt.Color(204,204,204));
servicePanel.add(nameLabel, null);
servicePanel.add(getNameComboBox(), null);
servicePanel.add(dateLabel, null);
servicePanel.add(getDateTextField(), null);
servicePanel.add(feeLabel, null);
servicePanel.add(getFeeTextField(), null);
servicePanel.add(getOKButton(), null);
servicePanel.add(getExitButton(), null);
}
return servicePanel;
}
/**
* This method initializes nameComboBox
*
* @return javax.swing.JComboBox
*/
private JComboBox getNameComboBox() {
if (nameComboBox == null) {
nameComboBox = new JComboBox();
nameComboBox.setBounds(new java.awt.Rectangle(65,11,88,17));
}
return nameComboBox;
}
/**
* This method initializes dateTextField
*
* @return javax.swing.JTextField
*/
private JTextField getDateTextField() {
if (dateTextField == null) {
dateTextField = new JTextField();
dateTextField.setBounds(new java.awt.Rectangle(80,85,73,22));
}
return dateTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getFeeTextField() {
if (feeTextField == null) {
feeTextField = new JTextField();
feeTextField.setBounds(new java.awt.Rectangle(81,48,72,22));
}
return feeTextField;
}
/**
* This method initializes OKButton
*
* @return javax.swing.JButton
*/
private JButton getOKButton() {
if (OKButton == null) {
OKButton = new JButton();
OKButton.setBounds(new java.awt.Rectangle(188,49,78,23));
OKButton.setText("确认");
OKButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// 保存登记服务信息.退出该界
// 处理非法输入
Transaction transaction = new Transaction();
try {
int checkNumIsInt = Integer.parseInt(feeTextField
.getText().toString().trim());
transaction.serviceFee=checkNumIsInt;
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null, "输入错误,请重新输入!",
"ok", JOptionPane.ERROR_MESSAGE);
return;
}
int index = enrolInfoTable.getSelectedRow();
System.out.println("你选择了数组的位置为" + index);
//如果没有选中元素,则不作处理
if (index == -1)
{
JOptionPane.showMessageDialog(null, "你没有选择顾客,请重新输入!",
"ok", JOptionPane.ERROR_MESSAGE);
return;
}
Enrol enrolInfo = new Enrol();
enrolInfo = (Enrol) enrolInfoList.get(index);
transaction.guestId=enrolInfo.enrolGuest.id;
//String staffId; //留着有用户传递进来
int indexCombo = nameComboBox.getSelectedIndex();
Service s = (Service)serviceInfoList.get(indexCombo);
transaction.serviceId = s.id;
transaction.date=dateTextField.getText().trim();
enrolRoom.newTransaction(transaction);
dispose();
}
});
}
return OKButton;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getExitButton() {
if (exitButton == null) {
exitButton = new JButton();
exitButton.setBounds(new java.awt.Rectangle(188,84,78,24));
exitButton.setText("返回");
exitButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
dispose();
}
});
}
return exitButton;
}
} // @jve:decl-index=0:visual-constraint="10,10"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -