📄 xp_hotelbill.java
字号:
import java.sql.*;
import java.io.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.DefaultListModel;
public class XP_hotelbill implements ActionListener
{
JFrame f=null;
public XP_hotelbill()
{
f=new JFrame("福佑饭店欢迎你!");//创建一个顶层容器
f.setBounds(360,260,130,130);
f.setResizable(false);
Container contentPane = f.getContentPane();//获得内容面板
JPanel Panel2 = new JPanel();//
JLabel Label_welcome = new JLabel(new ImageIcon("Z_HY.jpg"),SwingConstants.CENTER);
JButton b =new JButton("进入菜单");
b.addActionListener(this);
Panel2.add(b);
b=new JButton("退出系统");
b.addActionListener(this);//为按钮增加事件监听器
Panel2.add(b);//将按钮添加到中间容器
Panel2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.red,3),//设置蹭容器边框
"",TitledBorder.CENTER,TitledBorder.TOP));
contentPane.add(Label_welcome,BorderLayout.CENTER);
contentPane.add(Panel2,BorderLayout.SOUTH);
JMenuBar mBar =new JMenuBar();//创建菜单条
JMenu selection=new JMenu("选项");
JMenuItem regist=new JMenuItem("进入菜单");
JMenuItem sum=new JMenuItem("退出系统");
selection.add(regist);
selection.add(sum);
mBar.add(selection);
f.setJMenuBar(mBar);//为窗体增加菜单
regist.addActionListener(this);//为菜单添加事件监听器
sum.addActionListener(this);
f.pack();//进行排版
f.setVisible(true);//显示窗口
f.addWindowListener(new WindowAdapter(){//为窗口操作添加监听器
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("进入菜单"))
{
new XP_select(f);
}
else if(cmd.equals("退出系统"))
{
System.exit(0);
}
}
public static void main(String[] args)
{
new XP_hotelbill();
}
}
class XP_select implements ActionListener
{
JFrame J;
static boolean flag = true;
final int LISTCONTENS = 20;
static int GUKE_billnum=0;//顾客的菜单出菜号码
JList List_caidan1;//显示菜名的列表
JList List_caidan2;//显示已选择的菜名的列表
JLabel J_id;//菜号
JLabel J_name;//菜的名字
JLabel J_price;//菜的价格
JLabel J_leibie;//菜所属类别
JTextField J_part;//菜的份数
JComboBox J_desknum;//桌号
JLabel Spend;//当前消费
JSpinner S1;//有序变化选择框
JLabel Caidetupian = new JLabel();//菜的图片
JPanel I= new JPanel();//
static String select1;//在已选菜单列表中被选中的项
static String select2;//菜单列表中被选中的项
String List1[]=new String[LISTCONTENS];//列表数组
String List2[]=new String[LISTCONTENS];//列表数组
String List3[]=new String[LISTCONTENS];//初始化
XP_select(JFrame Z)
{
J=new JFrame("福佑饭店欢迎你!");
J.setSize(33,33);
J.setBounds(20,0,100,100);
Container contentPane = J.getContentPane();//获得内容面板
JPanel Panelh_NORTH = new JPanel();//创建上部窗口
JPanel Panelh_CENTER = new JPanel();
JPanel Panelh_SOUTH = new JPanel();
JPanel Panelh_CENTER_RIGTH= new JPanel();
JPanel Panelh_CENTER_LEFT= new JPanel();
JPanel Panelh_CENTER_CENTER= new JPanel();
JPanel Panelh_CENTER_WEST= new JPanel();
JPanel Panelh_CENTER_EAST= new JPanel();
Panelh_CENTER_RIGTH.setLayout(new GridLayout(1,1));
Panelh_CENTER_CENTER.setLayout(new GridLayout(6,2));
Panelh_CENTER_LEFT.setLayout(new GridLayout(1,1));
Panelh_CENTER.setLayout(new GridLayout(1,3));
Panelh_SOUTH.setLayout(new GridLayout(3,2));
Panelh_CENTER_RIGTH.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.red,2),"我的菜单",TitledBorder.CENTER,TitledBorder.TOP));
Panelh_CENTER_CENTER.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue,2),"详细",TitledBorder.CENTER,TitledBorder.TOP));
Panelh_CENTER_LEFT.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.green,2),"菜单",TitledBorder.CENTER,TitledBorder.TOP));
Panelh_NORTH.add(new JLabel(new ImageIcon("HY.jpg")));
try
{
ResultSet rs =null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Connection con =DriverManager.getConnection("jdbc:odbc:CAIDAN","Test","1234");
Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=F:\\java-test\\hotel-panxianyu-zonghe\\LIST.mdb");
Statement stmt=con.createStatement();
rs=stmt.executeQuery("Select* From CAIDAN");
int i=0;
while(rs.next())
{
List1[i]=rs.getString("Name");
i++;
}
stmt.close();
con.close();
}
catch(Exception ex){System.out.println("eee");}
List_caidan1 = new JList(List1);//将数据库中以列表的形式显示出来
List_caidan2 = new JList(List3);
Panelh_CENTER_LEFT.add(new JScrollPane(List_caidan1));//为菜单增加滚动条
List_caidan1.setCellRenderer(new CellRenderer());//为菜单加入图片
List_caidan1.setToolTipText("都是美味佳肴哦!");
//添加鼠标事件
MouseListener mouseListener = new MouseAdapter(){public void mouseClicked(MouseEvent e){mouseClick(e);}};
List_caidan1.addMouseListener(mouseListener);
//增加中间菜单项
Panelh_CENTER_CENTER.add(new JLabel("菜 号 :",SwingConstants.CENTER));
J_id = new JLabel();
Panelh_CENTER_CENTER.add(J_id);
Panelh_CENTER_CENTER.add(new JLabel("菜 名 :",SwingConstants.CENTER));
J_name = new JLabel();
Panelh_CENTER_CENTER.add(J_name);
Panelh_CENTER_CENTER.add(new JLabel("价 格 :",SwingConstants.CENTER));
J_price = new JLabel();
Panelh_CENTER_CENTER.add(J_price);
Panelh_CENTER_CENTER.add(new JLabel("类 别 :",SwingConstants.CENTER));
J_leibie = new JLabel();
Panelh_CENTER_CENTER.add(J_leibie);
Panelh_CENTER_CENTER.add(new JLabel("份 数 :",SwingConstants.CENTER));
S1 = new JSpinner(new SpinnerNumberModel(1,1,100,1));//创建从1到100,间隔为1的有序选择框
JPanel P1= new JPanel();
P1.setLayout(new GridLayout(3,1));
P1.add(new JLabel(" 要 几 份 ",SwingConstants.CENTER));
P1.add(S1);
Panelh_CENTER_CENTER.add(P1);
JLabel B1 = new JLabel("坐 号 :");
JPanel P2= new JPanel();
P2.add(B1);
Panelh_CENTER_CENTER.add(P2);
JPanel P11= new JPanel();
JLabel W1 = new JLabel("下 框 中 选 择 你 的 坐 位 号",SwingConstants.CENTER);
String []data1 = {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"};
J_desknum =new JComboBox(data1);
J_desknum.setEditable(false);
P11.setLayout(new GridLayout(3,1));
P11.add(W1);
P11.add(J_desknum);
Panelh_CENTER_CENTER.add(P11);
JLabel Spend1 = new JLabel("你 当 前 的 消 费 是 :",SwingConstants.RIGHT);
Spend =new JLabel();
Panelh_SOUTH.add(Spend1);
Panelh_SOUTH.add(Spend);
Spend.setText("0"+" "+"元");
JButton P_S_Y = new JButton(" 确 定 ");
P_S_Y.setToolTipText("**先选这些吧**");
JPanel J_S_Y = new JPanel();
J_S_Y.add(P_S_Y,SwingConstants.CENTER);//让确定居中显示
Panelh_SOUTH.add(J_S_Y);
JButton P_S_N = new JButton(" 取 消 ");
P_S_N.setToolTipText("**今天胃口不好,改天再来吃吧**");
JPanel J_S_N = new JPanel();
J_S_N.add(P_S_N,SwingConstants.CENTER);//让取消居中显示
Panelh_SOUTH.add(J_S_N);
P_S_Y.addActionListener(this);//添加确定按钮监听器
P_S_N.addActionListener(this);//添加取消按钮监听器
//为菜单添加鼠标响应事件
List_caidan2.addMouseListener(mouseListener);
List_caidan2.setToolTipText("双击就知道你已选择了几份哦");
//中间右边的我的菜单
JPanel P= new JPanel();
P.setLayout(new GridLayout(3,1));//添加确定和取消
I.setLayout(new GridLayout(1,2));//我的菜间的排版方式
JPanel U1= new JPanel();
JPanel U2= new JPanel();
JPanel U3= new JPanel();
JButton K1 = new JButton(" 吃 这 个>>");
K1.addActionListener(this);
K1.setToolTipText("将选中的菜加入我的菜单");
JButton K2 = new JButton("<<下 次 吃 ");
K2.setToolTipText("删除我的菜单中的菜");
K2.addActionListener(this);
U1.add(K1);
U2.add(K2);
U3.add(Caidetupian);
P.add(U3);
P.add(U1);
P.add(U2);
Caidetupian.addMouseListener(mouseListener);
I.add(P);
I.add(new JScrollPane(List_caidan2));
Panelh_CENTER_RIGTH.add(I);
//增加中间左半部分
Panelh_CENTER.add(Panelh_CENTER_LEFT);
//增加中间部分
Panelh_CENTER.add(Panelh_CENTER_CENTER);
//增加中间右半部分
Panelh_CENTER.add(Panelh_CENTER_RIGTH);
//添加总内容页面
contentPane.add(Panelh_NORTH,BorderLayout.NORTH);
contentPane.add(Panelh_CENTER,BorderLayout.CENTER);
contentPane.add(Panelh_SOUTH,BorderLayout.SOUTH);
J.pack();
J.setVisible(true);
}
public void mouseClick(MouseEvent e)
{
//访问数据库
if (e.getSource() == List_caidan1)
{
if(e.getClickCount() == 1)
{
int index = List_caidan1.locationToIndex(e.getPoint());//记住鼠标的当前坐标
List_caidan1.setSelectedIndex(index); //找到当前你所选择的项
Caidetupian.setIcon(new ImageIcon(List_caidan1.getSelectedIndex()+"c"+".jpg"));//设置当前菜的图片
select1 =(String) List_caidan1.getSelectedValue();
ResultSet rs = null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Connection con =DriverManager.getConnection("jdbc:odbc:CAIDAN","Test","1234");
Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=F:\\java-test\\hotel-panxianyu-zonghe\\LIST.mdb");
Statement stmt=con.createStatement();
rs=stmt.executeQuery("Select*From CAIDAN");
while(rs.next())
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -