点菜系统数据库课程设计
效果图
数据库建表
CREATE TABLE OrderDish
(
orderid int not null,
money int,
primary key(orderid)
);
CREATE TABLE Dish
(
id varchar(20) not null,
name nchar(10),
price int,
type nchar(10),
primary key(id)
);
insert into Dish values('zhushi0','水煮肉片',20,'主食');
insert into Dish values('zhushi1','农家小炒肉',19,'主食');
insert into Dish values('zhushi2','回锅牛肉',28,'主食');
insert into Dish values('zhushi3','红烧鱼块',24,'主食');
insert into Dish values('zhushi4','干烧刁子鱼',24,'主食');
insert into Dish values('zhushi5','干锅手撕鸡',22,'主食');
insert into Dish values('zhushi6','香菇焖鸡',26,'主食');
insert into Dish values('zhushi7','四季豆牛肚丝',26,'主食');
insert into Dish values('zhushi8','鱼香肉丝',19,'主食');
insert into Dish values('sushi0','酸辣土豆丝',12,'素食');
insert into Dish values('sushi1','番茄炒蛋',13,'素食');
insert into Dish values('sushi2','豆角炒茄子',13,'素食');
insert into Dish values('sushi3','麻婆豆腐',12,'素食');
insert into Dish values('sushi4','手撕包菜',10,'素食');
insert into Dish values('sushi5','小炒香干',13,'素食');
insert into Dish values('sushi6','小炒千叶豆腐',16,'素食');
insert into Dish values('sushi7','口味黑木耳',16,'素食');
insert into Dish values('xiaochi0','鸡米花',10,'小吃');
insert into Dish values('xiaochi1','无骨鸡柳',10,'小吃');
insert into Dish values('xiaochi2','骨肉相连',10,'小吃');
insert into Dish values('xiaochi3','薯条',8,'小吃');
insert into Dish values('xiaochi4','川香鸡柳',10,'小吃');
insert into Dish values('xiaochi5','香酥鸡块',15,'小吃');
insert into Dish values('yinpin0','红豆奶茶',10,'饮品');
insert into Dish values('yinpin1','芒果奶昔',10,'饮品');
insert into Dish values('yinpin2','蜜桃奶昔',10,'饮品');
insert into Dish values('yinpin3','姜母茶',15,'饮品');
insert into Dish values('yinpin4','原味奶茶',10,'饮品');
insert into Dish values('yinpin5','咖啡奶茶',10,'饮品');
CREATE TABLE OrderItem
(
orderid int not null,
id varchar(20) not null,
num int,
primary key(orderid,id),
foreign key(orderid) references OrderDish(orderid),
foreign key(id) references Dish(id)
);
drop table OrderItem;
drop table Dish;
drop table OrderDish;
try
{
}
catch(Exception exp)
{
exp.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/test" ; //下面几行都是模板
String user = "root" ;
String password = "" ;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url, user, password);
PreparedStatement ps=null;
ps=conn.prepareStatement("select count(*) from OrderDish");
ResultSet re=ps.executeQuery();
需要添加n多图片,加载连接mysql的驱动器
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
import java.util.Vector;
import javax.swing.*;
import java.sql.*;
import javax.swing.border.EmptyBorder;
public class test1 extends JFrame implements ActionListener {
//private static final String = null;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test1 frame = new test1();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
int orderid=0;
public test1()
{
setTitle("点菜系统");
setSize(600,600); //设置窗口大小
setLocation(100,100); //设置窗口的位置
ImageIcon image = new ImageIcon("Image/huanyingguanglin.PNG");
image.setImage(image.getImage().getScaledInstance(600,530,Image.SCALE_DEFAULT));
// 把背景图片显示在一个标签里面
JLabel label = new JLabel(image);
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0, 0, this.getWidth(), this.getHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
JPanel imagePanel = (JPanel) this.getContentPane();
imagePanel.setOpaque(false);
// 把背景图片添加到分层窗格的最底层作为背景
this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
JButton jb=new JButton();
jb.addActionListener(this); //增加监听
jb.setActionCommand("Welcome"); //监听信号
jb.setPreferredSize(new Dimension(250,50));
jb.setFont(new Font("宋体",Font.BOLD,20));
jb.setText("欢迎顾客点击进入菜单");
JPanel jp=new JPanel();
jp.setOpaque(false);
jp.setLayout(new GridBagLayout());
GridBagConstraints c=new GridBagConstraints();
c.fill=GridBagConstraints.NONE;
c.gridx=0; c.gridy=0;
c.insets=new Insets(300,0,50,50);
jp.add(jb,c);
jb=new JButton();
jb.addActionListener(this);
jb.setActionCommand("Close");
jb.setPreferredSize(new Dimension(250,50));
jb.setFont(new Font("宋体",Font.BOLD,20));
jb.setText("取消订单退出系统");
c=new GridBagConstraints();
c.fill=GridBagConstraints.NONE;
c.gridx=1; c.gridy=0;
c.insets=new Insets(300,0,50,50);
jp.add(jb,c);
this.add(jp);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true); //是否显示
}
public void actionPerformed(ActionEvent e)
{
try
{
String url = "jdbc:mysql://localhost:3306/test" ; //下面几行都是模板
String user = "root" ;
String password = "" ;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url, user, password);
PreparedStatement ps=null;
if(e.getActionCommand()=="Welcome")
{
ps=conn.prepareStatement("select count(*) from OrderDish");
ResultSet re=ps.executeQuery();
while(re.next()) orderid=re.getInt(1);
orderid++;
ps=conn.prepareStatement("insert into OrderDish values(?,0)");
ps.setInt(1, orderid);
ps.executeUpdate();
OrderDish order=new OrderDish(this,"菜单",true,orderid); //新的对话界面
}
else if(e.getActionCommand()=="Close")
{
ps=conn.prepareStatement("delete from OrderItem where orderid=?");
ps.setInt(1, orderid);
ps.executeUpdate();
ps=conn.prepareStatement("delete from OrderDish where orderid=?");
ps.setInt(1, orderid);
ps.executeUpdate();
this.dispose();
}
}
catch(Exception exp){ exp.printStackTrace(); }
}
}
class OrderDish extends JDialog implements ActionListener
{
JPanel[] jp={null,null,null,null};
JTabbedPane jtp=null;
JButton but=null;
JPanel topPane=null,bottomPane=null,pane=null;
JPanel[] zhushi={null,null,null,null,null,null,null,null,null,null};
JLabel lab=null;
JCheckBox[] zhushicheck={null,null,null,null,null,null,null,null,null};
JCheckBox[] sushicheck={null,null,null,null,null,null,null,null};
JCheckBox[] xiaochicheck={null,null,null,null,null,null};
JCheckBox[] yinpincheck={null,null,null,null,null,null};
JComboBox[] zhushicombo={null,null,null,null,null,null,null,null,null};
JComboBox[] sushicombo={null,null,null,null,null,null,null,null};
JComboBox[] xiaochicombo={null,null,null,null,null,null};
JComboBox[] yinpincombo={null,null,null,null,null,null};
ImageIcon image=null;
JScrollPane[] jsp={null,null,null,null};
String[] zhushiAL={ "zhushi0","zhushi1","zhushi2","zhushi3","zhushi4","zhushi5","zhushi6","zhushi7","zhushi8" };
String[] sushiAL={ "sushi0","sushi1","sushi2","sushi3","sushi4","sushi5","sushi6","sushi7" };
String[] xiaochiAL={ "xiaochi0","xiaochi1","xiaochi2","xiaochi3","xiaochi4","xiaochi5" };
String[] yinpinAL={ "yinpin0","yinpin1","yinpin2","yinpin3","yinpin4","yinpin5" };
String[] zhushinumAL={ "zhushinum0","zhushinum1","zhushinum2","zhushinum3","zhushinum4","zhushinum5","zhushinum6","zhushinum7","zhushinum8" };
String[] sushinumAL={ "sushinum0","sushinum1","sushinum2","sushinum3","sushinum4","sushinum5","sushinum6","sushinum7" };
String[] xiaochinumAL={ "xiaochinum0","xiaochinum1","xiaochinum2","xiaochinum3","xiaochinum4","xiaochinum5" };
String[] yinpinnumAL={ "yinpinnum0","yinpinnum1","yinpinnum2","yinpinnum3","yinpinnum4","yinpinnum5" };
int orderid=0,zhushinum=9,sushinum=8,xiaochinum=6,yinpinnum=6;
OrderDish(Frame a,String b,boolean c,int oid)
{
super(a,b,c);
orderid=oid;
this.setTitle("菜单");
this.setSize(600,600);
this.setLocation(200,100);
//右上角碗碟图片
image = new ImageIcon("Image/碗碟.PNG");
image.setImage(image.getImage().getScaledInstance(300,100,Image.SCALE_DEFAULT));
lab=new JLabel(image);
//左上角查看当前订单按钮
but=new JButton();
but.setForeground(Color.RED);
but.setFont(new Font("宋体",Font.BOLD,25));
but.setText("点击查看当前订单");
but.setBackground(Color.WHITE);
but.setPreferredSize(new Dimension(280,90));
but.addActionListener(this);
but.setActionCommand("ViewOrder"); //点击查看当前订单监听器
pane=new JPanel();
pane.setBackground(Color.WHITE);
pane.add(but);
//上部分面板
topPane=new JPanel();
topPane.setLayout(new GridLayout(1,2));
topPane.add(pane);
topPane.add(lab);
this.add(topPane,BorderLayout.NORTH);
//四个选项卡面板
jp[0]=new JPanel();
jp[1]=new JPanel();
jp[2]=new JPanel();
jp[3]=new JPanel();
//给第0个面板添加内容
jp[0].setLayout(new GridLayout(3,3,10,10));
for(int i=0;i<zhushinum;i++) zhushi[i]=new JPanel(); //多个面板存放不同的菜
String[] num={"1","2","3","4","5"};
String[] zhushiname={"水煮肉片 20元/份 ", "农家小炒肉 19元/份", "回锅牛肉 28元/份",
"红烧鱼块 24元/份", "干烧刁子鱼 24元/份", "干锅手撕鸡 22元/份",
"香菇焖鸡 26元/份", "四季豆牛肚丝 26元/份", "鱼香肉丝 19元/份"};
String[] zhushitp={
"Image/shuizhuroupian.PNG","Image/nongjiaxiaochaorou.PNG","Image/huiguoniurou.PNG",
"Image/hongshaoyukuai.PNG","Image/ganshaodiaoziyu.PNG","Image/ganguoshousiji.PNG",
"Image/xianggumenji.PNG","Image/sijidouniudusi.PNG","Image/yuxiangrousi.PNG"
};
//给每个菜的面板添加内容
for(int i=0;i<zhushinum;i++)
{
bottomPane=new JPanel();
bottomPane.setLayout(new GridLayout(2,1));
zhushicheck[i]=new JCheckBox("选中");
zhushicheck[i].addActionListener(this);
zhushicheck[i].setActionCommand(zhushiAL[i]); //增加监听器
lab=new JLabel(zhushiname[i]);
bottomPane.add(lab);
zhushicombo[i]=new JComboBox(num); //下拉列表框
zhushicombo[i].setSelectedIndex(0); //设置默认为1(第0个数)
zhushicombo[i].addActionListener(this);
zhushicombo[i].setActionCommand(zhushinumAL[i]);
lab=new JLabel("份");
pane=new JPanel();
pane.add(zhushicheck[i]); pane.add(zhushicombo[i]); pane.add(lab);
bottomPane.add(pane);
image= new ImageIcon(zhushitp[i]);
image.setImage(image.getImage().getScaledInstance(180,120,Image.SCALE_DEFAULT));
lab=new JLabel(image);
zhushi[i].add(lab,BorderLayout.CENTER);
zhushi[i].add(bottomPane,BorderLayout.SOUTH);
}
//把所有菜的面板加入到大面板中去
for(int i=0;i<zhushinum;i++) jp[0].add(zhushi[i]);
jp[0].setPreferredSize(new Dimension(560,600));
jsp[0]=new JScrollPane(jp[0]);
//给第1个面板添加内容
String[] sushiname={
"酸辣土豆丝 12元/份","番茄炒蛋 13元/份","豆角炒茄子 13元/份",
"麻婆豆腐 12元/份","手撕包菜 10元/份","小炒香干 13元/份",
"小炒千叶豆腐 16元/份","口味黑木耳 16元/份"
};
String[] sushitp={
"sushi/suanlatudousi.PNG","sushi/fanqiechaodan.PNG","sushi/doujiaochaoqiezi.PNG",
"sushi/mapodoufu.PNG","sushi/shousibaocai.PNG","sushi/xiaochaoxianggan.PNG",
"sushi/xiaochaoqianyedoufu.PNG","sushi/kouweiheimuer.PNG"
};
jp[1].setLayout(new GridLayout(3,3,10,10));
for(int i=0;i<sushinum;i++) zhushi[i]=new JPanel(); //多个面板存放不同的菜
//给每个菜的面板添加内容
for(int i=0;i<sushinum;i++)
{
bottomPane=new JPanel();
bottomPane.setLayout(new GridLayout(2,1));
sushicheck[i]=new JCheckBox("选中");
sushicheck[i].addActionListener(this);
sushicheck[i].setActionCommand(sushiAL[i]); //增加监听器
lab=new JLabel(sushiname[i]);
bottomPane.add(lab);
sushicombo[i]=new JComboBox(num); //下拉列表框
sushicombo[i].setSelectedIndex(0); //设置默认为1(第0个数)
sushicombo[i].addActionListener(this);
sushicombo[i].setActionCommand(sushinumAL[i]);
lab=new JLabel("份");
pane=new JPanel();
pane.add(sushicheck[i]); pane.add(sushicombo[i]); pane.add(lab);
bottomPane.add(pane);
image= new ImageIcon(sushitp[i]);
image.setImage(image.getImage().getScaledInstance(180,120,Image.SCALE_DEFAULT));
lab=new JLabel(image);
zhushi[i].add(lab,BorderLayout.CENTER);
zhushi[i].add(bottomPane,BorderLayout.SOUTH);
}
for(int i=0;i<sushinum;i++) jp[1].add(zhushi[i]);
jp[1].setPreferredSize(new Dimension(560,600));
jsp[1]=new JScrollPane(jp[1]);
//给第2个面板添加内容
String[] xiaochiname={
"鸡米花 10元/份","无骨鸡柳 10元/份","骨肉相连 10元/份",
"薯条 8元/份","川香鸡柳 10元/份","香酥鸡块 15元/份"
};
String[] xiaochitp={
"xiaochi/jimihua.PNG","xiaochi/wugujiliu.PNG","xiaochi/gurouxianglian.PNG",
"xiaochi/shutiao.PNG","xiaochi/chuanxiangjiliu.PNG","xiaochi/xiangsujikuai.PNG"
};
jp[2].setLayout(new GridLayout(2,3,10,10));
for(int i=0;i<xiaochinum;i++) zhushi[i]=new JPanel(); //多个面板存放不同的菜
//给每个菜的面板添加内容
for(int i=0;i<xiaochinum;i++)
{
bottomPane=new JPanel();
bottomPane.setLayout(new GridLayout(2,1));
xiaochicheck[i]=new JCheckBox("选中");
xiaochicheck[i].addActionListener(this);
xiaochicheck[i].setActionCommand(xiaochiAL[i]); //增加监听器
lab=new JLabel(xiaochiname[i]);
bottomPane.add(lab);
xiaochicombo[i]=new JComboBox(num); //下拉列表框
xiaochicombo[i].setSelectedIndex(0); //设置默认为1(第0个数)
xiaochicombo[i].addActionListener(this);
xiaochicombo[i].setActionCommand(xiaochinumAL[i]);
lab=new JLabel("份");
pane=new JPanel();
pane.add(xiaochicheck[i]); pane.add(xiaochicombo[i]); pane.add(lab);
bottomPane.add(pane);
image= new ImageIcon(xiaochitp[i]);
image.setImage(image.getImage().getScaledInstance(180,120,Image.SCALE_DEFAULT));
lab=new JLabel(image);
zhushi[i].add(lab,BorderLayout.CENTER);
zhushi[i].add(bottomPane,BorderLayout.SOUTH);
}
for(int i=0;i<xiaochinum;i++) jp[2].add(zhushi[i]);
jp[2].setPreferredSize(new Dimension(560,400));
jsp[2]=new JScrollPane(jp[2]);
//给第3个面板添加内容
String[] yinpinname={
"红豆奶茶 10元/份","芒果奶昔 10元/份","蜜桃奶昔 10元/份",
"姜母茶 15元/份","原味奶茶 10元/份","咖啡奶茶 10元/份"
};
String[] yinpintp={
"yinpin/hongdounaicha.PNG","yinpin/mangguonaixi.PNG","yinpin/mitaonaixi.PNG",
"yinpin/jiangmucha.PNG","yinpin/yuanweinaicha.PNG","yinpin/kafeinaicha.PNG"
};
jp[3].setLayout(new GridLayout(2,3,10,10));
for(int i=0;i<yinpinnum;i++) zhushi[i]=new JPanel(); //多个面板存放不同的菜
//给每个菜的面板添加内容
for(int i=0;i<yinpinnum;i++)
{
bottomPane=new JPanel();
bottomPane.setLayout(new GridLayout(2,1));
yinpincheck[i]=new JCheckBox("选中");
yinpincheck[i].addActionListener(this);
yinpincheck[i].setActionCommand(yinpinAL[i]); //增加监听器
lab=new JLabel(yinpinname[i]);
bottomPane.add(lab);
yinpincombo[i]=new JComboBox(num); //下拉列表框
yinpincombo[i].setSelectedIndex(0); //设置默认为1(第0个数)
yinpincombo[i].addActionListener(this);
yinpincombo[i].setActionCommand(yinpinnumAL[i]);
lab=new JLabel("份");
pane=new JPanel();
pane.add(yinpincheck[i]); pane.add(yinpincombo[i]); pane.add(lab);
bottomPane.add(pane);
image= new ImageIcon(yinpintp[i]);
image.setImage(image.getImage().getScaledInstance(180,120,Image.SCALE_DEFAULT));
lab=new JLabel(image);
zhushi[i].add(lab,BorderLayout.CENTER);
zhushi[i].add(bottomPane,BorderLayout.SOUTH);
}
//把所有菜的面板加入到大面板中去
for(int i=0;i<yinpinnum;i++) jp[3].add(zhushi[i]);
jp[3].setPreferredSize(new Dimension(560,400));
jsp[3]=new JScrollPane(jp[3]);
jtp=new JTabbedPane();
jtp.add("主食",jsp[0]);
jtp.add("素食",jsp[1]);
jtp.add("小吃",jsp[2]);
jtp.add("饮品",jsp[3]);
this.add(jtp,BorderLayout.CENTER);
JPanel bottomPane=new JPanel();
but=new JButton();
but.setFont(new Font("宋体",Font.BOLD,20));
but.setText(" 前往结账 ");
but.addActionListener(this);
but.setActionCommand("jiezhang");
bottomPane.add(but);
but=new JButton();
but.setFont(new Font("宋体",Font.BOLD,20));
but.setText(" 重新选菜 ");
but.addActionListener(this);
but.setActionCommand("chongxuan");
bottomPane.add(but);
but=new JButton();
but.setFont(new Font("宋体",Font.BOLD,20));
but.setText(" 返回 ");
but.addActionListener(this);
but.setActionCommand("Close");
bottomPane.add(but);
this.add(bottomPane,BorderLayout.SOUTH);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setVisible(true); //是否显示
}
public int Getzhushi(String s)
{
for(int i=0;i<zhushinum;i++) if(s==zhushiAL[i]) return i;
return -1;
}
public int Getzhushinum(String s)
{
for(int i=0;i<zhushinum;i++) if(s==zhushinumAL[i]) return i;
return -1;
}
public int Getsushi(String s)
{
for(int i=0;i<sushinum;i++) if(s==sushiAL[i]) return i;
return -1;
}
public int Getsushinum(String s)
{
for(int i=0;i<sushinum;i++) if(s==sushinumAL[i]) return i;
return -1;
}
public int Getxiaochi(String s)
{
for(int i=0;i<xiaochinum;i++) if(s==xiaochiAL[i]) return i;
return -1;
}
public int Getxiaochinum(String s)
{
for(int i=0;i<xiaochinum;i++) if(s==xiaochinumAL[i]) return i;
return -1;
}
public int Getyinpin(String s)
{
for(int i=0;i<yinpinnum;i++) if(s==yinpinAL[i]) return i;
return -1;
}
public int Getyinpinnum(String s)
{
for(int i=0;i<yinpinnum;i++) if(s==yinpinnumAL[i]) return i;
return -1;
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="Close") this.dispose(); //关闭窗口
else if(e.getActionCommand()=="jiezhang") { Check ck=new Check(this,"结账",true,orderid); }//产生结账窗口
else if(e.getActionCommand()=="chongxuan")
{
//把所有的选择取消,并删除数据库中所有选菜内容
for(int i=0;i<zhushinum;i++)
{
if(zhushicheck[i].isSelected()) zhushicheck[i].setSelected(false);
zhushicombo[i].setSelectedIndex(0);
}
for(int i=0;i<sushinum;i++)
{
if(sushicheck[i].isSelected()) sushicheck[i].setSelected(false);
zhushicombo[i].setSelectedIndex(0);
}
for(int i=0;i<xiaochinum;i++)
{
if(xiaochicheck[i].isSelected()) xiaochicheck[i].setSelected(false);
xiaochicombo[i].setSelectedIndex(0);
}
for(int i=0;i<yinpinnum;i++)
{
if(yinpincheck[i].isSelected()) yinpincheck[i].setSelected(false);
yinpincombo[i].setSelectedIndex(0);
}
try
{
String url = "jdbc:mysql://localhost:3306/test" ; //下面几行都是模板
String user = "root" ;
String password = "" ;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url, user, password);
PreparedStatement ps=null;
ps=conn.prepareStatement("delete from OrderItem where orderid=?");
ps.setInt(1, orderid);
ps.executeUpdate();
}
catch(Exception exp)
{
exp.printStackTrace();
}
return;
}
else if(e.getActionCommand()=="ViewOrder"){ View view=new View(this,"当前订单",true,orderid); }
else
{
try
{
String url = "jdbc:mysql://localhost:3306/test" ; //下面几行都是模板
String user = "root" ;
String password = "" ;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url, user, password);
PreparedStatement ps=null;
int a=Getzhushi(e.getActionCommand());
if(a!=-1)
{
if(zhushicheck[a].isSelected())
{
ps=conn.prepareStatement("insert into OrderItem values(?,?,?)");
ps.setInt(1,orderid); ps.setString(2, zhushiAL[a]);
int num=zhushicombo[a].getSelectedIndex()+1;
ps.setInt(3, num);
ps.executeUpdate();
}
else
{
ps=conn.prepareStatement("delete from OrderItem where orderid=? and id=?");
ps.setInt(1, orderid); ps.setString(2, zhushiAL[a]);
ps.executeUpdate();
}
return;
}
a=Getsushi(e.getActionCommand());
if(a!=-1)
{
if(sushicheck[a].isSelected())
{
ps=conn.prepareStatement("insert into OrderItem values(?,?,?)");
ps.setInt(1,orderid); ps.setString(2, sushiAL[a]);
int num=sushicombo[a].getSelectedIndex()+1;
ps.setInt(3, num);
ps.executeUpdate();
}
else
{
ps=conn.prepareStatement("delete from OrderItem where orderid=? and id=?");
ps.setInt(1, orderid); ps.setString(2, sushiAL[a]);
ps.executeUpdate();
}
return;
}
a=Getxiaochi(e.getActionCommand());
if(a!=-1)
{
if(xiaochicheck[a].isSelected())
{
ps=conn.prepareStatement("insert into OrderItem values(?,?,?)");
ps.setInt(1,orderid); ps.setString(2, xiaochiAL[a]);
int num=xiaochicombo[a].getSelectedIndex()+1;
ps.setInt(3, num);
ps.executeUpdate();
}
else
{
ps=conn.prepareStatement("delete from OrderItem where orderid=? and id=?");
ps.setInt(1, orderid); ps.setString(2, xiaochiAL[a]);
ps.executeUpdate();
}
return;
}
a=Getyinpin(e.getActionCommand());
if(a!=-1)
{
if(yinpincheck[a].isSelected())
{
ps=conn.prepareStatement("insert into OrderItem values(?,?,?)");
ps.setInt(1,orderid); ps.setString(2, yinpinAL[a]);
int num=yinpincombo[a].getSelectedIndex()+1;
ps.setInt(3, num);
ps.executeUpdate();
}
else
{
ps=conn.prepareStatement("delete from OrderItem where orderid=? and id=?");
ps.setInt(1, orderid); ps.setString(2, yinpinAL[a]);
ps.executeUpdate();
}
return;
}
a=Getzhushinum(e.getActionCommand());
if(a!=-1)
{
if(zhushicheck[a].isSelected())
{
ps=conn.prepareStatement("update OrderItem set num=? where orderid=? and id=?");
int num=zhushicombo[a].getSelectedIndex()+1;
ps.setInt(1, num); ps.setInt(2, orderid); ps.setString(3, zhushiAL[a]);
ps.executeUpdate();
}
}
a=Getsushinum(e.getActionCommand());
if(a!=-1)
{
if(sushicheck[a].isSelected())
{
ps=conn.prepareStatement("update OrderItem set num=? where orderid=? and id=?");
int num=sushicombo[a].getSelectedIndex()+1;
ps.setInt(1, num); ps.setInt(2, orderid); ps.setString(3, sushiAL[a]);
ps.executeUpdate();
}
}
a=Getxiaochinum(e.getActionCommand());
if(a!=-1)
{
if(xiaochicheck[a].isSelected())
{
ps=conn.prepareStatement("update OrderItem set num=? where orderid=? and id=?");
int num=xiaochicombo[a].getSelectedIndex()+1;
ps.setInt(1, num); ps.setInt(2, orderid); ps.setString(3, xiaochiAL[a]);
ps.executeUpdate();
}
}
a=Getyinpinnum(e.getActionCommand());
if(a!=-1)
{
if(yinpincheck[a].isSelected())
{
ps=conn.prepareStatement("update OrderItem set num=? where orderid=? and id=?");
int num=yinpincombo[a].getSelectedIndex()+1;
ps.setInt(1, num); ps.setInt(2, orderid); ps.setString(3, yinpinAL[a]);
ps.executeUpdate();
}
}
}
catch(Exception exp)
{
exp.printStackTrace();
}
}
}
}
class View extends JDialog implements ActionListener
{
JScrollPane[] jsp={null,null,null,null,null};
int orderid=0;
View(JDialog a,String b,boolean c,int oid)
{
super(a,b,c);
orderid=oid;
this.setSize(600,600);
this.setLocation(300,100);
//连接数据库把选菜信息显示出来
JTabbedPane jtp=new JTabbedPane();
String[] sql={
"select name,price,num from Dish,OrderItem where orderid=? and OrderItem.id=Dish.id",
"select name,price,num from Dish,OrderItem where orderid=? and OrderItem.id=Dish.id and Dish.id like 'zhushi%'",
"select name,price,num from Dish,OrderItem where orderid=? and OrderItem.id=Dish.id and Dish.id like 'sushi%'",
"select name,price,num from Dish,OrderItem where orderid=? and OrderItem.id=Dish.id and Dish.id like 'xiaochi%'",
"select name,price,num from Dish,OrderItem where orderid=? and OrderItem.id=Dish.id and Dish.id like 'yinpin%'"
};
try
{
String url = "jdbc:mysql://localhost:3306/test" ; //下面几行都是模板
String user = "root" ;
String password = "" ;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url, user, password);
PreparedStatement ps=null;
for(int i=0;i<5;i++)
{
Vector ziduan=new Vector();
ziduan.add("菜名"); ziduan.add("单价"); ziduan.add("数量");
Vector jilu=new Vector(); //集合类
//这里就要连接数据库把信息显示出来
ps=conn.prepareStatement(sql[i]);
ps.setInt(1, orderid);
ResultSet re=ps.executeQuery();
while(re.next())
{
String name=re.getString(1);
String price =String.format("%d", re.getInt(2));
String num=String.format("%d", re.getInt(3));
Vector v=new Vector();
v.add(name); v.add(price); v.add(num);
jilu.add(v);
}
JTable tab=new JTable(jilu,ziduan);//JTable是表格,里面的参数是先记录后字段
tab.setFont(new Font("楷体",Font.BOLD,20));
tab.setBackground(Color.CYAN);
tab.setRowHeight(30);
jsp[i]=new JScrollPane(tab); //滚动条
}
}
catch(Exception exp)
{
exp.printStackTrace();
}
jtp.add("所有",jsp[0]);
jtp.add("主食",jsp[1]);
jtp.add("素食",jsp[2]);
jtp.add("小吃",jsp[3]);
jtp.add("饮品",jsp[4]);
this.add(jtp,BorderLayout.CENTER);
JButton but=new JButton();
but.setFont(new Font("宋体",Font.BOLD,20));
but.setText(" 返回 ");
but.addActionListener(this);
but.setActionCommand("exit");
JPanel pane=new JPanel();
pane.add(but,BorderLayout.CENTER);
this.add(pane,BorderLayout.SOUTH);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setVisible(true); //是否显示
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="exit")
{
this.dispose();
}
}
}
class Check extends JDialog implements ActionListener
{
JButton[] jb={null,null};
int orderid=0,sum=0;
Check(JDialog a,String b,boolean c,int oid)
{
super(a,b,c);
orderid=oid;
this.setTitle("结账");
this.setSize(600,600);
this.setLocation(300,100);
//连接数据库把所有选菜信息显示出来
Vector ziduan=new Vector();
ziduan.add("菜名"); ziduan.add("单价"); ziduan.add("数量");
Vector jilu=new Vector();
//连接数据库得到信息
try
{
String url = "jdbc:mysql://localhost:3306/test" ; //下面几行都是模板
String user = "root" ;
String password = "" ;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url, user, password);
PreparedStatement ps=null;
ps=conn.prepareStatement("select name,price,num from Dish,OrderItem where orderid=? and OrderItem.id=Dish.id");
ps.setInt(1, orderid);
ResultSet re=ps.executeQuery();
while(re.next())
{
String name=re.getString(1);
int p=re.getInt(2);
int t=re.getInt(3);
sum+=p*t;
String price =String.format("%d", p);
String num=String.format("%d", t);
Vector v=new Vector();
v.add(name); v.add(price); v.add(num);
jilu.add(v);
}
}
catch(Exception exp)
{
exp.printStackTrace();
}
//加总价标签
JLabel lab=new JLabel();
lab.setFont(new Font("宋体",Font.BOLD,20));
lab.setText("总计 "+sum+"元");
lab.setHorizontalAlignment(JLabel.CENTER);
this.add(lab,BorderLayout.NORTH);
//加表格记录
JTable tab=new JTable(jilu,ziduan);//JTable是表格,里面的参数是先记录后字段
tab.setFont(new Font("楷体",Font.BOLD,20));
tab.setBackground(Color.CYAN);
tab.setRowHeight(30);
JScrollPane jsp=new JScrollPane(tab); //滚动条
this.add(jsp,BorderLayout.CENTER);
//加按钮
jb[0]=new JButton();
jb[0].setFont(new Font("宋体",Font.BOLD,20));
jb[0].setText(" 确认支付 ");
jb[0].addActionListener(this);
jb[0].setActionCommand("Pay");
jb[1]=new JButton();
jb[1].setFont(new Font("宋体",Font.BOLD,20));
jb[1].setText(" 返回 ");
jb[1].addActionListener(this);
jb[1].setActionCommand("Close");
JPanel bottomPane=new JPanel();
bottomPane.add(jb[0]); bottomPane.add(jb[1]);
this.add(bottomPane,BorderLayout.SOUTH);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setVisible(true); //是否显示
}
public void actionPerformed(ActionEvent e)
{
//
if(e.getActionCommand()=="Close")
{
this.dispose();
}
else if(e.getActionCommand()=="Pay")
{
try
{
String url = "jdbc:mysql://localhost:3306/test" ; //下面几行都是模板
String user = "root" ;
String password = "" ;
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url, user, password);
PreparedStatement ps=null;
ps=conn.prepareStatement("update OrderDish set money=? where orderid=?");
ps.setInt(1, sum); ps.setInt(2, orderid);
ps.executeUpdate();
}
catch(Exception exp)
{
exp.printStackTrace();
}
Pay pay=new Pay(this,"支付",true);
}
}
}
class Pay extends JDialog implements ActionListener
{
JTabbedPane jtp=null;
JButton jb=null;
JPanel bottomPane=null;
JLabel[] jl={null,null,null,null};
ImageIcon image=null;
Pay(JDialog a,String b,boolean c)
{
super(a,b,c);
this.setSize(600,600);
this.setLocation(400,100);
image= new ImageIcon("Image/zhifubao.PNG");
image.setImage(image.getImage().getScaledInstance(600,500,Image.SCALE_DEFAULT));
jl[0]=new JLabel(image);
image= new ImageIcon("Image/weixin.PNG");
image.setImage(image.getImage().getScaledInstance(600,500,Image.SCALE_DEFAULT));
jl[1]=new JLabel(image);
image= new ImageIcon("Image/wangyin.PNG");
image.setImage(image.getImage().getScaledInstance(600,500,Image.SCALE_DEFAULT));
jl[2]=new JLabel(image);
image= new ImageIcon("Image/xianjing.PNG");
image.setImage(image.getImage().getScaledInstance(600,500,Image.SCALE_DEFAULT));
jl[3]=new JLabel(image);
jtp=new JTabbedPane();
jtp.add("支付宝支付",jl[0]);
jtp.add(" 微信支付 ",jl[1]);
jtp.add(" 网银支付 ",jl[2]);
jtp.add(" 现金支付 ",jl[3]);
this.add(jtp,BorderLayout.CENTER);
jb=new JButton();
jb.setFont(new Font("宋体",Font.BOLD,20));
jb.setText(" 完成退出 ");
jb.addActionListener(this);
jb.setActionCommand("exit");
bottomPane=new JPanel();
bottomPane.add(jb);
this.add(bottomPane,BorderLayout.SOUTH);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="exit")
{
this.dispose();
}
}
}