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

📄 tipwizardframe.java

📁 酒店管理系统 开发环境为sql server 2000 java 开发酒店管理系统 开发环境为sql server 2000酒店管理系统 开发环境为sql server 2000酒店管理系统 开发环境
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		codeRadioButton.setSelected(true);
		codeRadioButton.setText("助记码");
		codePanel.add(codeRadioButton);

		final JLabel codeCLabel = new JLabel();
		codeCLabel.setText("):");
		codePanel.add(codeCLabel);

		codeTextField = new JTextField();
		codeTextField.setColumns(16);
		codeTextField.addKeyListener(new KeyAdapter() {

			public void keyTyped(KeyEvent e) {// 通过键盘监听器实现控制文本框的输入内容
				if ("abcdefghijklmnopqrstuvwxyz0123456789".indexOf(e
						.getKeyChar()) < 0)// 只允许输入字母和数字
					e.consume();// 销毁此次键盘事件
			}

			public void keyReleased(KeyEvent e) {// 通过键盘监听器实现智能获取菜品
				if (e.getKeyCode() == KeyEvent.VK_ENTER) {// 按下回车键
					makeOutAnInvoice();// 开单
				} else {
					String input = codeTextField.getText();// 获得输入内容
					Vector menuV = null;// 符合条件的菜品
					if (input.length() > 0) {// 确认输入了内容
						if (codeRadioButton.isSelected()) {// 按助记码查询
							Vector menusV = dao.sMenuByCode(input);// 查询符合条件的菜品
							if (menusV.size() > 0) {// 存在符合条件的菜品
								menuV = (Vector) menusV.get(0);// 获得第一个符合条件的菜品
								menuV.remove(0);// 移除菜品的序号
							}
						} else {// 按编号查询
							if (input.length() == 9)// 确认编号是否为9位
								menuV = dao.sMenuByNum(input);// 查询符合条件的菜品
						}
					}
					if (menuV == null) {// 不存在符合条件的菜品
						nameTextField.setText(null);// 设置“商品名称”文本框为空
						unitTextField.setText(null);// 设置“单位”文本框为空
						priceTextField.setText(null);// 设置“单价”文本框为空
					} else {// 存在符合条件的菜品
						nameTextField.setText(menuV.get(2).toString());// 设置“商品名称”文本框为符合条件的菜品名称
						unitTextField.setText(menuV.get(4).toString());// 设置“单位”文本框为符合条件的菜品单位
						priceTextField.setText(menuV.get(5).toString());// 设置“单价”文本框为符合条件的菜品单价
					}
				}
			}
		});
		orderDishesPanel.add(codeTextField);

		final JLabel nameLabel = new JLabel();
		nameLabel.setText("    商品名称:");
		orderDishesPanel.add(nameLabel);

		nameTextField = new JTextField();
		nameTextField.setColumns(24);
		nameTextField.setEditable(false);
		nameTextField.setFocusable(false);// 设置“商品名称”文本框不可以获得焦点
		nameTextField.setHorizontalAlignment(SwingConstants.CENTER);
		orderDishesPanel.add(nameTextField);

		final JLabel unitLabel = new JLabel();
		unitLabel.setText("    单位:");
		orderDishesPanel.add(unitLabel);

		unitTextField = new JTextField();
		unitTextField.setColumns(6);
		unitTextField.setEditable(false);
		unitTextField.setFocusable(false); // 设置“单位”文本框不可以获得焦点
		unitTextField.setHorizontalAlignment(SwingConstants.CENTER);
		orderDishesPanel.add(unitTextField);

		final JLabel priceLabel = new JLabel();
		priceLabel.setText("    单价:");
		orderDishesPanel.add(priceLabel);

		priceTextField = new JTextField();
		priceTextField.setColumns(6);
		priceTextField.setEditable(false);
		priceTextField.setFocusable(false); // 设置“单价”文本框不可以获得焦点
		priceTextField.setHorizontalAlignment(SwingConstants.CENTER);
		orderDishesPanel.add(priceTextField);

		final JLabel amountLabel = new JLabel();
		amountLabel.setText("元    数量:");
		orderDishesPanel.add(amountLabel);

		amountTextField = new JTextField();// 创建“数量”文本框
		amountTextField.setColumns(6);
		amountTextField.setHorizontalAlignment(SwingConstants.CENTER);
		amountTextField.setNextFocusableComponent(codeTextField);
		amountTextField.setText("1");// 默认数量为1
		amountTextField.addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {// 当文本框获得焦点时执行
				amountTextField.setText(null);// 设置“数量”文本框为空
			}

			public void focusLost(FocusEvent e) {// 当文本框失去焦点时执行
				String amount = amountTextField.getText();// 获得输入的数量
				if (amount.length() == 0)// 未输入数量
					amountTextField.setText("1"); // 恢复为默认数量1
			}
		});
		amountTextField.addKeyListener(new KeyAdapter() {
			public void keyTyped(KeyEvent e) {
				int length = amountTextField.getText().length();// 获取当前数量的位数
				if (length < 2) {// 位数小于两位
					String num = (length == 0 ? "123456789" : "0123456789"); // 将允许输入的字符定义成字符串
					if (num.indexOf(e.getKeyChar()) < 0)// 查看按键字符是否包含在允许输入的字符中
						e.consume(); // 如果不包含在允许输入的字符中则销毁此次按键事件
				} else {
					e.consume(); // 如果不小于数量允许的最大位数则销毁此次按键事件
				}
			}

			public void keyReleased(KeyEvent e) {
				if (e.getKeyCode() == KeyEvent.VK_ENTER) {
					makeOutAnInvoice();// 开单
					codeTextField.requestFocus();// 为用来输入助记码的文本框请求焦点
				}
			}
		});
		orderDishesPanel.add(amountTextField);

		final JPanel functionPanel = new JPanel();
		final FlowLayout flowLayout_1 = new FlowLayout();
		flowLayout_1.setVgap(0);
		functionPanel.setLayout(flowLayout_1);
		functionPanel.setBorder(new TitledBorder(null, "",
				TitledBorder.DEFAULT_JUSTIFICATION,
				TitledBorder.DEFAULT_POSITION, null, null));
		operatePanel.add(functionPanel);

		final JLabel adLabel = new JLabel();
		adLabel.setIcon(new ImageIcon(TipWizardFrame.class
				.getResource("/img/main_ad.png")));
		functionPanel.add(adLabel);

		final JPanel checkOutPanel = new JPanel();
		checkOutPanel.setPreferredSize(new Dimension(260, 150));
		checkOutPanel.setLayout(new GridBagLayout());
		functionPanel.add(checkOutPanel);

		final JLabel expenditureLabel = new JLabel();
		expenditureLabel.setFont(new Font("", Font.BOLD, 16));
		expenditureLabel.setText("消费金额:");
		final GridBagConstraints gridBagConstraints_13 = new GridBagConstraints();
		gridBagConstraints_13.gridx = 0;
		gridBagConstraints_13.gridy = 0;
		gridBagConstraints_13.insets = new Insets(0, 10, 0, 0);
		checkOutPanel.add(expenditureLabel, gridBagConstraints_13);

		expenditureTextField = new JTextField();
		expenditureTextField.setHorizontalAlignment(SwingConstants.RIGHT);
		expenditureTextField.setText("0");
		expenditureTextField.setForeground(new Color(255, 0, 0));
		expenditureTextField.setFont(new Font("", Font.BOLD, 15));
		expenditureTextField.setColumns(7);
		expenditureTextField.setEditable(false);
		final GridBagConstraints gridBagConstraints_6 = new GridBagConstraints();
		gridBagConstraints_6.gridy = 0;
		gridBagConstraints_6.gridx = 1;
		checkOutPanel.add(expenditureTextField, gridBagConstraints_6);

		final JLabel expenditureUnitLabel = new JLabel();
		expenditureUnitLabel.setForeground(new Color(255, 0, 0));
		expenditureUnitLabel.setFont(new Font("", Font.BOLD, 15));
		expenditureUnitLabel.setText(" 元");
		final GridBagConstraints gridBagConstraints_14 = new GridBagConstraints();
		gridBagConstraints_14.gridy = 0;
		gridBagConstraints_14.gridx = 2;
		checkOutPanel.add(expenditureUnitLabel, gridBagConstraints_14);

		final JLabel realWagesLabel = new JLabel();
		realWagesLabel.setFont(new Font("", Font.BOLD, 16));
		realWagesLabel.setText("实收金额:");
		final GridBagConstraints gridBagConstraints_7 = new GridBagConstraints();
		gridBagConstraints_7.insets = new Insets(10, 10, 0, 0);
		gridBagConstraints_7.gridy = 1;
		gridBagConstraints_7.gridx = 0;
		checkOutPanel.add(realWagesLabel, gridBagConstraints_7);

		realWagesTextField = new JTextField();
		realWagesTextField.setHorizontalAlignment(SwingConstants.RIGHT);
		realWagesTextField.setText("0");
		realWagesTextField.setForeground(new Color(0, 128, 0));
		realWagesTextField.setFont(new Font("", Font.BOLD, 15));
		realWagesTextField.setColumns(7);
		realWagesTextField.addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {
				realWagesTextField.setText("");
			}

			public void focusLost(FocusEvent e) {
				if (realWagesTextField.getText().length() == 0)
					realWagesTextField.setText("0");
			}
		});
		realWagesTextField.addKeyListener(new KeyAdapter() {
			public void keyTyped(KeyEvent e) {
				int length = realWagesTextField.getText().length();// 获取当前数量的位数
				if (length < 8) {// 位数小于两位
					String num = (length == 4 ? "123456789" : "0123456789"); // 将允许输入的字符定义成字符串
					if (num.indexOf(e.getKeyChar()) < 0)// 查看按键字符是否包含在允许输入的字符中
						e.consume(); // 如果不包含在允许输入的字符中则销毁此次按键事件
				} else {
					e.consume(); // 如果不小于数量允许的最大位数则销毁此次按键事件
				}
			}
		});
		final GridBagConstraints gridBagConstraints_8 = new GridBagConstraints();
		gridBagConstraints_8.insets = new Insets(10, 0, 0, 0);
		gridBagConstraints_8.gridy = 1;
		gridBagConstraints_8.gridx = 1;
		checkOutPanel.add(realWagesTextField, gridBagConstraints_8);

		final JLabel realWagesUnitLabel = new JLabel();
		realWagesUnitLabel.setForeground(new Color(0, 128, 0));
		realWagesUnitLabel.setFont(new Font("", Font.BOLD, 15));
		realWagesUnitLabel.setText(" 元");
		final GridBagConstraints gridBagConstraints_15 = new GridBagConstraints();
		gridBagConstraints_15.insets = new Insets(10, 0, 0, 0);
		gridBagConstraints_15.gridy = 1;
		gridBagConstraints_15.gridx = 2;
		checkOutPanel.add(realWagesUnitLabel, gridBagConstraints_15);

		final JButton checkOutButton = new JButton();
		checkOutButton.setText("结 账");
		checkOutButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int selectedRow = rightTable.getSelectedRow();
				if (selectedRow < 0) {// 未选中任何餐台
					JOptionPane.showMessageDialog(null, "请选择要结账的餐台!", "友情提示",
							JOptionPane.INFORMATION_MESSAGE);// 弹出提示
					return;
				}
				int rowCount = leftTable.getRowCount();// 获得结账餐台的点菜数量
				if (leftTable.getValueAt(rowCount - 1, 0).equals("NEW")) {// 存在未签单菜品
					JOptionPane.showMessageDialog(null, "请先确定未签单商品的处理方式!",
							"友情提示", JOptionPane.INFORMATION_MESSAGE);// 弹出提示
					return;
				}
				int expenditure = Integer.valueOf(expenditureTextField
						.getText());// 获得消费金额
				int realWages = Integer.valueOf(realWagesTextField.getText());// 获得实收金额
				if (realWages < expenditure) {// 查看实收金额是否小于消费金额
					if (realWages == 0)// 未输入实收金额
						JOptionPane.showMessageDialog(null, "请输入实收金额!", "友情提示",
								JOptionPane.INFORMATION_MESSAGE);// 弹出提示
					else
						// 实收金额小于消费金额
						JOptionPane.showMessageDialog(null, "实收金额不能小于消费金额!",
								"友情提示", JOptionPane.INFORMATION_MESSAGE);// 弹出提示
					realWagesTextField.requestFocus();// 为“实收金额”文本框请求获得焦点
					return;
				}
				changeTextField.setText((realWages - expenditure) + "");// 计算并设置“找零金额”
				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();// 获得菜品消费金额
					dao.iOrderItem(orderItemData);// 持久化到数据库
				}
				JOptionPane.showMessageDialog(null, rightTable.getValueAt(
						selectedRow, 1)
						+ " 结账完成!", "友情提示", JOptionPane.INFORMATION_MESSAGE);// 弹出提示
				//
				rightTableModel.removeRow(selectedRow);// 从“开台列表”中移除结账餐台
				leftTableDataV.removeAllElements();// 清空“签单列表”
				leftTableModel.setDataVector(leftTableDataV, leftTableColumnV);// 刷新“签单列表”
				realWagesTextField.setText("0");// 清空“实收金额”文本框
				changeTextField.setText("0");// 清空“找零金额”文本框
				itemOfDeskV.remove(selectedRow);// 从数据集中移除结账餐台
			}
		});
		checkOutButton.setMargin(new Insets(2, 14, 2, 14));
		checkOutButton.setFont(new Font("", Font.BOLD, 12));
		final GridBagConstraints gridBagConstraints_10 = new GridBagConstraints();
		gridBagConstraints_10.anchor = GridBagConstraints.EAST;
		gridBagConstraints_10.gridwidth = 2;
		gridBagConstraints_10.insets = new Insets(10, 0, 0, 0);
		gridBagConstraints_10.gridy = 2;
		gridBagConstraints_10.gridx = 1;
		checkOutPanel.add(checkOutButton, gridBagConstraints_10);

		final JLabel changeLabel = new JLabel();
		changeLabel.setFont(new Font("", Font.BOLD, 16));
		changeLabel.setText("找零金额:");
		final GridBagConstraints gridBagConstraints_11 = new GridBagConstraints();
		gridBagConstraints_11.insets = new Insets(10, 10, 0, 0);
		gridBagConstraints_11.gridy = 3;
		gridBagConstraints_11.gridx = 0;
		checkOutPanel.add(changeLabel, gridBagConstraints_11);

		changeTextField = new JTextField();
		changeTextField.setHorizontalAlignment(SwingConstants.RIGHT);
		changeTextField.setText("0");

⌨️ 快捷键说明

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