package com.mwq.frame;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
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.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import com.mwq.dao.Dao;
import com.mwq.frame.check_out.DayDialog;
import com.mwq.frame.check_out.MonthDialog;
import com.mwq.frame.check_out.YearDialog;
import com.mwq.frame.manage.DeskNumDialog;
import com.mwq.frame.manage.MenuDialog;
import com.mwq.frame.manage.SortDialog;
import com.mwq.frame.user.UpdatePasswordDialog;
import com.mwq.frame.user.UserManagerDialog;
import com.mwq.mwing.MButton;
import com.mwq.mwing.MTable;
import com.mwq.tool.Today;
import com.mwq.tool.Validate;
public class TipWizardFrame extends JFrame {
private JLabel timeLabel;
private JTextField amountTextField;
private JTextField unitTextField;
private JTextField nameTextField;
private JTextField codeTextField;
private JComboBox numComboBox;
private JTextField changeTextField;
private JTextField realWagesTextField;
private JTextField expenditureTextField;
private ButtonGroup buttonGroup = new ButtonGroup();
private MTable rightTable;
private Vector<String> rightTableColumnV;
private Vector<Vector<Object>> rightTableValueV;
private DefaultTableModel rightTableModel;
private MTable leftTable;
private Vector<String> leftTableColumnV;
private Vector<Vector<Object>> leftTableValueV;
private DefaultTableModel leftTableModel;
private Vector<Vector<Vector<Object>>> menuOfDeskV;
private Dimension screenSize;
private final Dao dao = Dao.getInstance();
/**
* Launch the application
*
* @param args
*/
public static void main(String args[]) {
try {
TipWizardFrame frame = new TipWizardFrame(null);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the frame
*/
public TipWizardFrame(final Vector user) {
super();
setTitle(" T 科技");
setResizable(false);
setBounds(0, 0, 1024, 768);
setExtendedState(TipWizardFrame.MAXIMIZED_BOTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
screenSize = Toolkit.getDefaultToolkit().getScreenSize();
final JLabel topLabel = new JLabel();
topLabel.setPreferredSize(new Dimension(0, 100));
topLabel.setHorizontalAlignment(SwingConstants.CENTER);
URL topUrl = this.getClass().getResource("/img/top.jpg");
ImageIcon topIcon = new ImageIcon(topUrl);
topLabel.setIcon(topIcon);
getContentPane().add(topLabel, BorderLayout.NORTH);
final JSplitPane splitPane = new JSplitPane();// 创建分割面版对象
splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);// 设置为水平分割
splitPane.setDividerLocation(755);// 设置面版默认的分割位置
splitPane.setDividerSize(10);// 设置分割条的宽度
splitPane.setOneTouchExpandable(true);// 设置为支持快速展开/折叠分割条
splitPane.setBorder(new TitledBorder(null, "",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null));// 设置面版的边框
getContentPane().add(splitPane, BorderLayout.CENTER);// 将分割面版添加到上级容器中
final JPanel leftPanel = new JPanel();// 创建放于分割面版左侧的普通面版对象
leftPanel.setLayout(new BorderLayout());// 设置面板的布局管理器
splitPane.setLeftComponent(leftPanel);// 将普通面版对象添加到分割面版的左侧
final JLabel leftTitleLabel = new JLabel();
leftTitleLabel.setFont(new Font("", Font.BOLD, 14));
leftTitleLabel.setPreferredSize(new Dimension(0, 25));
leftTitleLabel.setText(" 签单列表:");
leftPanel.add(leftTitleLabel, BorderLayout.NORTH);
final JScrollPane leftScrollPane = new JScrollPane();
leftPanel.add(leftScrollPane);
menuOfDeskV = new Vector<Vector<Vector<Object>>>();
leftTableColumnV = new Vector<String>();
String leftTableColumns[] = { " ", "序 号", "商品编号", "商品名称", "单 位",
"数 量", "单 价", "金 额" };
for (int i = 0; i < leftTableColumns.length; i++) {
leftTableColumnV.add(leftTableColumns[i]);
}
leftTableValueV = new Vector<Vector<Object>>();
leftTableModel = new DefaultTableModel(leftTableValueV,
leftTableColumnV);
leftTableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {// 通过表格模型监听器实现自动结账
int rowCount = leftTable.getRowCount();// 获得签单列表中的行数
float expenditure = 0.0f;// 默认消费 0 元
for (int row = 0; row < rowCount; row++) {// 通过循环计算消费金额
expenditure += Float.valueOf(leftTable.getValueAt(row, 7)
.toString());// 累加消费金额
}
expenditureTextField.setText(expenditure + "0");// 更新“消费金额”文本框
}
});
leftTable = new MTable(leftTableModel);
leftScrollPane.setViewportView(leftTable);
final JPanel rightPanel = new JPanel();// 创建放于分割面版右侧的普通面版对象
rightPanel.setLayout(new BorderLayout());
splitPane.setRightComponent(rightPanel);// 将普通面版对象添加到分割面版的右侧
final JLabel rightTitleLabel = new JLabel();
rightTitleLabel.setFont(new Font("", Font.BOLD, 14));
rightTitleLabel.setPreferredSize(new Dimension(0, 25));
rightTitleLabel.setText(" 开台列表:");
rightPanel.add(rightTitleLabel, BorderLayout.NORTH);
final JScrollPane rightScrollPane = new JScrollPane();
rightPanel.add(rightScrollPane);
rightTableColumnV = new Vector<String>();
rightTableColumnV.add("序 号");
rightTableColumnV.add("台 号");
rightTableColumnV.add("开台时间");
rightTableValueV = new Vector<Vector<Object>>();
rightTableModel = new DefaultTableModel(rightTableValueV,
rightTableColumnV);
rightTable = new MTable(rightTableModel);
rightTable.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int rSelectedRow = rightTable.getSelectedRow();// 获得“开台列表”中的选中行
leftTableValueV.removeAllElements();// 清空“签单列表”中的所有行
leftTableValueV.addAll(menuOfDeskV.get(rSelectedRow));// 将选中台号的签单列表添加到“签单列表”中
leftTableModel.setDataVector(leftTableValueV, leftTableColumnV);// 刷新“签单列表”
leftTable.setRowSelectionInterval(0);// 选中“签单列表”中的第一行
numComboBox.setSelectedItem(rightTable.getValueAt(rSelectedRow,
1));// 同步选中“台号”下拉菜单中的相应台号
}
});
rightScrollPane.setViewportView(rightTable);
final JPanel bottomPanel = new JPanel();
bottomPanel.setPreferredSize(new Dimension(0, 230));
bottomPanel.setLayout(new BorderLayout());
getContentPane().add(bottomPanel, BorderLayout.SOUTH);
final JPanel orderDishesPanel = new JPanel();
orderDishesPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
bottomPanel.add(orderDishesPanel, BorderLayout.NORTH);
final JLabel numLabe
java开发实例(含原代码,数据库)
需积分: 10 144 浏览量
2008-10-14
17:07:24
上传
评论
收藏 589KB RAR 举报
wxwlion0425
- 粉丝: 2
- 资源: 2
最新资源
- 基于Javascript的诊所管理系统设计源码
- 人工智能在电子信息管理系统中的应用与效率优化研究
- 详解protobuf-c之在C语言中如何使用repeated生成数组和字符串(包含配置pb-callback-t)
- Python 程序语言设计模式思路-并发模式:消费者模式:协调生产者和消费者之间的数据交换
- pythonA*算法(A-star algorithm),寻路算法
- guitest.zip
- udp_echo.v
- udp_echo_server.v
- python双向广度优先搜索算法(Bidirectional Breadth-First Search, BBFS),寻路算法
- python迭代加深算法(Iterative Deepening Depth-First Search, IDDFS),寻路算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈