酒店管理系统设计
表”中的现有项目
leftTableDataV.addAll(itemOfDeskV.get(needSelectedRow)); // 向“签
单列表”添加新选中餐台的消费项目
leftTableModel.setDataVector(leftTableDataV,
leftTableColumnV); // 刷新“签单列表”表格模
型的数据
leftTable.setRowSelectionInterval(0); // 选中“签单
列表”中的第一行
7.2.2开单功能的实现
final JButton addButton = new MButton();
7.2.3签单功能的实现
16页
}
}
});
addButton.setIcon(new ImageIcon(TipWizardFrame.class
.getResource(\
addButton.setRolloverIcon(new ImageIcon(TipWizardFrame.class
.getResource(\
addButton.addActionListener(new ActionListener() {
publicvoid actionPerformed(ActionEvent e) { }
makeOutAnInvoice();
codeTextField.requestFocus();
});
orderDishesButtonPanel.add(addButton); orderDishesPanel.add(numComboBox);
酒店管理系统设计
final JButton subButton = new MButton();// 创建按钮
subButton.setIcon(new ImageIcon(getClass().getResource(
\按钮默认时显示的图片
subButton.setRolloverIcon(new
ImageIcon(getClass().getResource(
\光标移入时显示的图片
subButton.addActionListener(new ActionListener() {
publicvoid actionPerformed(ActionEvent e) {
int selectedRow = rightTable.getSelectedRow();// 获得
“开台列表”中的选中行
if (selectedRow < 0) {// 未选中任何行
JOptionPane.showMessageDialog(null, \请选择要签单的
台号!\友情提示\
JOptionPane.INFORMATION_MESSAGE);
return;
} else {
int lastRowIndex = leftTable.getRowCount() - 1;// 获
得最后一个消费项目的索引
Object lastRowSign =
leftTable.getValueAt(lastRowIndex, 0);// 获得最后一个消费项目的标记
if (lastRowSign.equals(\为未签单项目
Object firstRowSign = leftTable.getValueAt(0,
0);// 获得第一个消费项目的标记
if (firstRowSign.equals(\{// 为未签单项目,
即为新开台签单 {
leftTable.setValueAt(\签单
17页
for (int row = lastRowIndex; row >= 0; row--)
酒店管理系统设计
{
}
} else {// 为已签单项目,即为新添加菜品签单
for (int row = lastRowIndex; row >= 0; row--)
if (leftTable.getValueAt(row,
0).equals(\为未签单项目 单 成
7.3 结账功能的实现
final JButton checkOutButton = new JButton();
checkOutButton.setText(\结 账\
checkOutButton.addActionListener(new ActionListener() {
publicvoid actionPerformed(ActionEvent e) {
int selectedRow = rightTable.getSelectedRow(); if (selectedRow < 0) {// 未选中任何餐台
JOptionPane.showMessageDialog(null, \请选择要结账的
}
}
}
}
}
break;
else
// 为已签单项目,即为新添加菜品签单完
leftTable.setValueAt(\签
});
orderDishesButtonPanel.add(subButton);
餐台!\友情提示\
18页
酒店管理系统设计
}
JOptionPane.INFORMATION_MESSAGE);// 弹出提示
return;
int rowCount = leftTable.getRowCount();// 获得结账餐台的
点菜数量
if (leftTable.getValueAt(rowCount - 1, 0).equals(\
{// 存在未签单菜品
JOptionPane.showMessageDialog(null, \请先确定未签单
商品的处理方式!\
\友情提示\
JOptionPane.INFORMATION_MESSAGE);// 弹出提示
}
int expenditure = Integer.valueOf(expenditureTextField
.getText());// 获得消费金额 return;
int realWages =
Integer.valueOf(realWagesTextField.getText());// 获得实收金额
if (realWages < expenditure) {// 查看实收金额是否小于消
费金额
if (realWages == 0)// 未输入实收金额
JOptionPane.showMessageDialog(null, \请输入实收
金额!\友情提示\
JOptionPane.INFORMATION_MESSAGE);// 弹出
提示
else
// 实收金额小于消费金额
JOptionPane.showMessageDialog(null, \实收金额不
能小于消费金额!\
\友情提示\
19页
酒店管理系统设计
JOptionPane.INFORMATION_MESSAGE);// 弹出提示
realWagesTextField.requestFocus();// 为“实收金额”
文本框请求获得焦点
}
changeTextField.setText((realWages - expenditure) +
return;
\计算并设置“找零金额”
String[] orderFormData = {
getNum(),
rightTable.getValueAt(selectedRow,
1).toString(),
Today.getDate() + \
+ rightTable.getValueAt(selectedRow, 2),
expenditureTextField.getText(),
TipWizardFrame.this.managerV.get(0).toString() };// 组织消费单信息
dao.iOrderForm(orderFormData);// 持久化到数据库 String[] orderItemData = new String[4];// 用来存储消费项
目信息
orderItemData[0] = dao.sOrderFormOfMaxId();// 获得消费单
编号
for (int row = 0; row < rowCount; row++) {// 通过循环持
久化消费项目信息
orderItemData[1] = leftTable.getValueAt(row,
2).toString();// 获得菜品编号
orderItemData[2] = leftTable.getValueAt(row,
5).toString();// 获得菜品数量
orderItemData[3] = leftTable.getValueAt(row,
7).toString();// 获得菜品消费金额
20页