Java 咖啡机 MVC模式

本文通过一个简单的Java咖啡机应用,展示了MVC模式的实现。应用包括了视图组件,如CoffeeSlot、BottomPicture、Drinksgif、EastButtons等,以及控制器如SetPowderListener、SetWaterListener等,它们共同协作完成咖啡机的功能。通过单例模式确保了类的唯一实例,同时应用中涉及到事件监听和用户交互,体现了MVC模式在实际项目中的应用。
摘要由CSDN通过智能技术生成
  • Java入门小白:用了很多单例模式,另外resource我没放上去

  • package view.main:class:CoffeSlot:

    import view.main.Framework;

    public class CoffeeSlot
    {

        public static void main(String[] Stephanie) 
        {
               Framework.getInstance();
        }

    }
     

  • package:view.body  class: BottomPicture:

  • package view.body;

    import javax.swing.JLabel;

    public class BottomPicture extends JLabel
    {
         /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public BottomPicture()
         {
             this.setSize(300, 280);
             utils.ImageUtils.addBottomPicture(this);
         }
        private static BottomPicture self = new BottomPicture();
        public static BottomPicture getInstance()
        {
            return self;
        }
    }
     

  • package:view.body  class:Drinksgif

  • package view.body;

    import java.awt.Color;
    import java.awt.Graphics;
    import javax.swing.JPanel;

    public class Drinksgif extends JPanel implements Runnable
    {
          private static final long serialVersionUID = 1L;
          public  int i= 0;
          public static Color color = new Color(0,0,0);
          public void paintComponent(Graphics g)
          {
              g.setColor(Color.WHITE);
              g.fillRect(0, 0, 80,120);
              g.setColor(color);
              g.fillRect(0, 120 - i, 80, i);
          }
          public void run()
          {
              i = 0; 
              while(i < 100)
              {
                  try
                  {
                      Thread.sleep(50);
                  }
                  catch(Exception e)
                  {
                  }
                     i += 2;
                  repaint();
              }
          }
    }
     

  • package view.body;

    import javax.swing.BorderFactory;

    import javax.swing.JButton;

    public class EastButtons extends JButton
    {
          /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private static JButton btWater = new JButton("water");
        private static JButton btPowder = new JButton("powder");
        private static JButton btSugar = new JButton("sugar");
        private static JButton btCups = new JButton("cups");
        
        private static JButton btFeedCoins = new JButton("feed a coin");
        private static JButton btRefund = new JButton("refund");
        private static JButton btTakeOut = new JButton("take out");
        public EastButtons()
          {
                initBtWater();
                initBtPowder();
                initBtSugar();
                initBtCups();
                initBtFeedCoins();
               initBtRefund();
               initBtTakeOut();
          }
          //set up a singleton 创建单例模式
         private static EastButtons self = new EastButtons();
          public static EastButtons getInstance()
          {
              return self;
          }
          private void initBtWater()
          {
              setBtWater();
              controller.SetWaterListener lW = new controller.SetWaterListener();
             btWater.addActionListener(lW);
          }
          private void setBtWater()
          {
                btWater.setLayout(null);
                btWater.setBounds(10, 5, 75, 25);
                btWater.setBorder(BorderFactory.createRaisedBevelBorder());
          }
          public JButton getBtWater()
          {
              return btWater;
          }
          
          
          private void initBtPowder()
          {
              setBtPowder();
              controller.SetPowderListener lP = new controller.SetPowderListener();
              btPowder.addActionListener(lP);
          }
          private void setBtPowder()
          {
                
                 btPowder.setLayout(null);
                 btPowder.setBounds(10, 30, 75, 25);
                 btPowder.setBorder(BorderFactory.createRaisedBevelBorder());
           }
          public JButton getBtPowder()
          {
              return btPowder;
          }
          
          
          private void initBtSugar()
          {
              setBtSugar();
              controller.SetSugarListener lS = new controller.SetSugarListener();
              btSugar.addActionListener(lS);
          }      
          private void setBtSugar()
          {
                btSugar.setLayout(null);
                 btSugar.setBounds(10, 55, 75, 25);
                 btSugar.setBorder(BorderFactory.createRaisedBevelBorder());
           }
          public JButton getBtSugar()
          {
              return btSugar;
          }
          
          private void initBtCups()
          {
                  setBtCups();
                  controller.SetCupsListener lC = new controller.SetCupsListener();
                 btCups.addActionListener(lC);
          }
          private void setBtCups()
          {
                btCups.setLayout(null);
                 btCups.setBounds(10, 80, 75, 25);
                 btCups.setBorder(BorderFactory.createRaisedBevelBorder());
           }
          public JButton getBtCups()
          {
              return btCups;
          }
          
          private void initBtFeedCoins()
          {
              setBtFeedCoins();
              controller.SetFeedCoinsListener lF = new controller.SetFeedCoinsListener();
              btFeedCoins.addActionListener(lF);
          }
         private void setBtFeedCoins()
          {
                btFeedCoins.setLayout(null);
                 btFeedCoins.setBounds(10, 120, 75, 25);
                 btFeedCoins.setBorder(BorderFactory.createRaisedBevelBorder());
          }
         public JButton getBtFeedCoins()
         {
             return btFeedCoins;
         }
         
         private void initBtRefund()
         {
             setBtRefund();
             controller.SetRefundListener lR = new controller.SetRefundListener();
               btRefund.addActionListener(lR);
         }
          private void setBtRefund()
          {
                btRefund.setLayout(null);
                 btRefund.setBounds(10, 145, 75, 25);
                 btRefund.setBorder(BorderFactory.createRaisedBevelBorder());
          }
          public JButton getBtRefund()
          {
              return btRefund;
          }
          private void initBtTakeOut()
          {
              setBtTakeOut();
              controller.SetTakeOutListener lT = new controller.SetTakeOutListener();
              btTakeOut.addActionListener(lT);
          }
           private void setBtTakeOut()
           {
                 btTakeOut.setLayout(null);
                  btTakeOut.setBounds(10, 170, 75, 25);
                  btTakeOut.setBorder(BorderFactory.createRaisedBevelBorder());
           }
           public JButton getBtTakeOut()
           {
               return btTakeOut;
           }
    }
     

  • package view.body;

    import javax.swing.JFrame;

    import controller.Temperature;

    public class Framework extends JFrame
    {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        public Framework()
         {
             setFramework();
         }
        private static Framework self = new Framework();
        public static Framework getInstance()
        {
            return self;
        }
        private void setFramework()
        {
            JFrame f = new JFrame("Cafe at Stephanie's");
            f.setLayout(null);
            f.setBounds(300, 300, 410, 700);
            f.setDefaultCloseOperation(EXIT_ON_CLOSE);
            
            f.add(PanelHead.getInstance());
            f.add(PanelEast.getInstance());
            f.add(PanelSouth.getInstance());
            f.add(PanelWest.getInstance());
            f.add(PanelNorth.getInstance());
            f.add(PanelBottom.getInstance());
            f.setVisible(true);
            
            Thread tW = new Thread(new Temperature());
            tW.start();
        }
    }
     

  • package view.body;

    import javax.swing.JLabel;

    public class HeadPicture  extends JLabel
    {
          /**
         * 
         */
        private static final long serialVersionUID = 1L;

          public HeadPicture()
          {
              this.setSize(410, 300);
              utils.ImageUtils.addHeadPicture(this);
          }
          private static HeadPicture self = new HeadPicture();
          public static HeadPicture getInstance() 
          {
               return self;  
          }
          
    }
     

  • package view.body;

    import javax.swing.JLabel;

    public class NorthNums extends JLabel
    {
         /**
         * 
         */
         private static final long serialVersionUID = 1L;
         
         private  JLabel labelWarmth = new JLabel("warmth:");
         private static  JLabel labelTemperature = new JLabel("20℃");
         private  JLabel labelCoins = new JLabel("coins:");
         private  JLabel labelSumofCoins = new JLabel("0");
         public static int money = 0;
         
         
         private static NorthNums self = new NorthNums();
         public NorthNums()
         {
              setNorthLabels();
         }
         public static NorthNums getInstance()
         {
             return self;
         }
         public void setNorthLabels() 
         {
              labelWarmth.setBounds(10, 0, 50, 30);
                 labelTemperature.setBounds(65, 0, 40, 30);
                 labelCoins.setBounds(110, 0, 55, 30);
                 labelSumofCoins.setBounds(150, 0, 15, 30);
         }
         public JLabel getLabelWarmth() 
         {
            return labelWarmth;
         }
        public static JLabel getLabelTemperature() 
        {
            return labelTemperature;
        }
        public JLabel getLabelCoins() 
        {
            return labelCoins;
        }
        public JLabel getLabelSumofCoins()
        {
            return labelSumofCoins;
        }
        public int getMoney()
        {
            return money;
        }
    }
        
     

  • package view.body;

    import javax.swing.BorderFactory;
    import javax.swing.JPanel;

    public class PanelBottom extends JPanel
    {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;
           public PanelBottom()
           {
               setPanelBottom();
               this.add(new BottomPicture());
           }
           private static PanelBottom self = new PanelBottom();
           public static PanelBottom getInstance()
           {
               return self;
           }
           private void setPanelBottom()
           {
               this.setBounds(0,400,394,260);
               this.setBorder(BorderFactory.createRaisedBevelBorder());
           }
    }
     

  • package view.body;

    import javax.swing.BorderFactory;

    import javax.swing.JPanel;

    public class PanelEast extends JPanel
    {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        public PanelEast()
        {
            setPanelEast();
            addEastButtons();
        }
        private static PanelEast self = new PanelEast();
        public static PanelEast getInstance()
        {
            return self;
        }    
         private void setPanelEast()
         {
             this.setLayout(null);
                this.setBounds(300,200,95,200);
                this.setBorder(BorderFactory.createRaisedBevelBorder());
         }
         private void addEastButtons()
         {
             this.add(EastButtons.getInstance().getBtWater());
             this.add(EastButtons.getInstance().getBtPowder());
             this.add(EastButtons.getInstance().getBtSugar());
             this.add(EastButtons.getInstance().getBtCups());
             
             this.add(EastButtons.getInstance().getBtFeedCoins());
             this.add(EastButtons.getInstance().getBtRefund());
             this.add(EastButtons.getInstance().getBtTakeOut());
         }
    }
     

  • package view.body;

    import javax.swing.BorderFactory;
    import javax.swing.JPanel;

    public class PanelHead extends JPanel
    {
          /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public PanelHead()
          {
              setPanelHead();
              this.add(new HeadPicture());
          }
        private static PanelHead self = new PanelHead();
        public static PanelHead getInstance()
        {
            return self;
        }
        private void setPanelHead()
        {
            this.setBounds(0,0,394,200);
            this.setBorder(BorderFactory.createRaisedBevelBorder());
        }
    }
     

  • package view.body;

    import javax.swing.BorderFactory;
    import javax.swing.JPanel;

    public class PanelNorth extends JPanel
    {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public PanelNorth()
        {
            setPanelNorth();
            addNorthNums();
        }
        private static PanelNorth self = new PanelNorth();
        public static PanelNorth getInstance()
        {
            return self;
        }
        private void setPanelNorth()
        {
            this.setLayout(null);
               this.setBounds(95, 200, 220, 35);
               this.setBorder(BorderFactory.createRaisedBevelBorder());
        }
       private void addNorthNums()
       {
           this.add(NorthNums.getInstance().getLabelWarmth()); 
           this.add(NorthNums.getLabelTemperature()); 
             this.add(NorthNums.getInstance().getLabelCoins()); 
             this.add(NorthNums.getInstance().getLabelSumofCoins()); 
       }
    }

  • package view.body;

    import javax.swing.BorderFactory;


    import javax.swing.JPanel;

    import controller.SetTakeOutListener;

    public class PanelSouth extends JPanel
    {
         /**
         * 
         */
        private static final long serialVersionUID = 1L;
        public static JPanel PanelDrinks = new JPanel();
        public static Drinksgif threadType = new Drinksgif();
        
        private static PanelSouth self = new PanelSouth();
        public static JPanel getInstance()
        {
            return self;
        }
        public PanelSouth()
         {
             setPanelSouth();
             setPanelDrinks();
             this.add(getPanelDrinks());
             if((SetTakeOutListener.judge == 1) || (SetTakeOutListener.judge == 0))
             {
                 PanelDrinks.setVisible(false);
                 threadType.setVisible(false);
             }
             else if(SetTakeOutListener.judge == -1)
             {
                 PanelDrinks.setVisible(true);
                 threadType.setVisible(true);
             }
         }
        private void setPanelSouth()
        {
            this.setLayout(null);
               this.setBounds(95, 235, 300, 165);
               threadType.setBounds(65, 20, 80, 120);
               this.setBorder(BorderFactory.createRaisedBevelBorder());
            this.add(threadType);
        }
        private void setPanelDrinks()
        {
            PanelDrinks.setLayout(null);
            PanelDrinks.setBounds(65, 20, 80, 120);
            PanelDrinks.setBorder(BorderFactory.createRaisedBevelBorder());
        }
        public JPanel getPanelDrinks() 
        {
            return PanelDrinks;
        }
    }

  • package view.body;

    import javax.swing.BorderFactory;
    import javax.swing.JPanel;

    public class PanelWest extends JPanel
    {
          /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public PanelWest()
          {
              setPanelWest();
              addWestButtons();
              this.add(PanelWestTop.getInstance());
          }
         private static PanelWest self = new PanelWest();
         public static PanelWest getInstance()
         {
             return self;
         }
        public void setPanelWest()
        {
            this.setLayout(null);
              this.setBounds(0,200,95,200);
              this.setBorder(BorderFactory.createRaisedBevelBorder());
        }
        public void addWestButtons()
        {
             WestButtons.getInstance();
               this.add(WestButtons.getInstance().getBtEspresso());
               this.add(WestButtons.getInstance().getBtCoffee());
               this.add(WestButtons.getInstance().getBtMilkyTea());
        }
    }

  • package view.body;

    import java.awt.Color;
    import java.awt.Graphics;

    import javax.swing.BorderFactory;
    import javax.swing.JLabel;
    import javax.swing.JPanel;


    public class PanelWestTop extends JPanel
    {
         /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private JLabel LeftWater = new JLabel("+ water");
        private JLabel LeftCoffee = new JLabel("+ coffee");
        private JLabel LeftMilkyTea = new JLabel("+ milky tea");
        private JLabel LeftSugar = new JLabel("+ sugar");
        private JLabel LeftCups = new JLabel("+ cups");
        
        private  Light BulbWater = new Light();
        private  Light BulbCoffee  = new Light();
        private  Light BulbMilkyTea = new Light();
        private  Light BulbSugar = new Light();
        private  Light BulbCups = new Light();
        public PanelWestTop()
         {
            setPanelWestTop();
            setLeftWater();
            setLeftCoffee();
            setLeftMilkyTea();
            setLeftSugar();
            setLeftCups();
            
            this.add(LeftWater);
            this.add(LeftCoffee);
            this.add(LeftMilkyTea);
            this.add(LeftSugar);
            this.add(LeftCups);
            
            setBulbWater();
            setBulbCoffee();
            setBulbMilkyTea();
            setBulbSugar();
            setBulbCups();
            this.add(BulbWater);
            this.add(BulbCoffee);
            this.add(BulbMilkyTea);
            this.add(BulbSugar);
            this.add(BulbCups);
         }
        private static PanelWestTop self = new PanelWestTop();
        public static PanelWestTop getInstance()
        {
            return self;
        }
        private void setPanelWestTop()
        {
            this.setLayout(null);
             this.setBounds(5, 5, 85, 105);
             this.setBorder(BorderFactory.createRaisedBevelBorder());
        }
        
        
        //给外部方法用
        public JLabel getAddWater()
        {
            return LeftWater;
        }
        //给内部用,所以它是私有的
        private void setLeftWater()
        {
            LeftWater.setBounds(18, 5, 75, 15);
        }
        
        
        public JLabel getAddCoffee()
        {
            return LeftCoffee;
        }    
        private void setLeftCoffee()
        {
            LeftCoffee.setBounds(18, 25, 75, 15);
        }
        
        
        public JLabel getAddMilkyTea()
        {
            return LeftMilkyTea;
        }    
        private void setLeftMilkyTea()
        {
            LeftMilkyTea.setBounds(18, 45, 75, 15);
        }
        
        
        public JLabel getAddSugar()
        {
            return LeftSugar;
        }    
        private void setLeftSugar()
        {
            LeftSugar.setBounds(18, 65, 75, 15);
        }
        
        
        public JLabel getAddCups()
        {
            return LeftCups;
        }    
        private void setLeftCups()
        {
            LeftCups.setBounds(18,85, 75, 15);
        }
        
            
        public Light getBulbWater()
        {
            return BulbWater;
        }    
        private void setBulbWater()
        {
            BulbWater.setBounds(4,1,15,15);
        }
        
        public Light getBulbCoffee()
        {
            return BulbCoffee;
        }    
        private void setBulbCoffee()
        {
            BulbCoffee.setBounds(4,21,15,15);
        }
        
        public Light getBulbMilkyTea()
        {
            return BulbMilkyTea;
        }    
        private void setBulbMilkyTea()
        {
            BulbMilkyTea.setBounds(4,41,15,15);
        }
        
        public Light getBulbSugar()
        {
            return BulbSugar;
        }    
        private void setBulbSugar()
        {
            BulbSugar.setBounds(4,61,15,15);
        }

        public Light getBulbCups()
        {
            return BulbCups;
        }    
        private void setBulbCups()
        {
            BulbCups.setBounds(4,81,15,15);
        }
        public static class Light extends JPanel 
        {
                 private static final long serialVersionUID = 1L;
                 public boolean on = true;
                 public void paintComponent(Graphics g)
                 {
                         super.paintComponent(g);
                         if(this.on)
                         {
                             g.setColor(Color.RED);
                         }
                         else
                         {
                             g.setColor(Color.GREEN);
                         }
                         g.fillOval(0, 5, 10, 10);
                 }
        }
    }

  • package view.body;

    import javax.swing.BorderFactory;
    import javax.swing.JButton;

    public class WestButtons extends JButton
    {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private static JButton btEspresso = new JButton("espresso");
        private static JButton btCoffee = new JButton("coffee");
        private static JButton btMilkyTea = new JButton("milky tea");
           public WestButtons()
           {
               initBtEspresso();
               initBtCoffee();
              initBtMilkyTea();
           }
           private static WestButtons self = new WestButtons();
           public static WestButtons getInstance()
           {
               return self;
           }
           private void initBtEspresso()
           {
               setBtEspresso();
               controller.SetEspressoListener lE = new controller.SetEspressoListener();
              btEspresso.addActionListener(lE);
           }
           private void setBtEspresso()
           {
                 btEspresso.setLayout(null);
                  btEspresso.setBounds(10, 115, 75, 25);
                  btEspresso.setBorder(BorderFactory.createRaisedBevelBorder());
           }  
           public JButton getBtEspresso()
           {
               return btEspresso;
           }
           
           
           private void initBtCoffee()
           {
               setBtCoffee();
               controller.SetCoffeeListener lC = new controller.SetCoffeeListener();
               btCoffee.addActionListener(lC);
           }
           private void setBtCoffee()
           {
                 btCoffee.setLayout(null);
                  btCoffee.setBounds(10, 140, 75, 25);
                  btCoffee.setBorder(BorderFactory.createRaisedBevelBorder());
           }  
           public JButton getBtCoffee()
           {
               return btCoffee;
           }
           
           private void initBtMilkyTea()
           {
               setBtMilkyTea();
               controller.SetMilkyTeaListener lM = new controller.SetMilkyTeaListener();
               btMilkyTea.addActionListener(lM);
           }
           private void setBtMilkyTea()
           {
                 btMilkyTea.setLayout(null);
                  btMilkyTea.setBounds(10, 165, 75, 25);
                  btMilkyTea.setBorder(BorderFactory.createRaisedBevelBorder());
           }  
           public JButton getBtMilkyTea()
           {
               return btMilkyTea;
           }
    }

  • package utils;

    import java.applet.Applet;
    import java.applet.AudioClip;

    import javax.annotation.Resources;

    public class AudioUtils 
    {
        public static void putOneCoin()
        {
              AudioClip soundPutOneCoin = null;
             soundPutOneCoin = Applet.newAudioClip(Resources.class.getResource("/resource/putCoin.wav"));
             soundPutOneCoin.play();        
        }
        public static void getOneCoin()
        {
              AudioClip soundGetOneCoin = null;
             soundGetOneCoin = Applet.newAudioClip(Resources.class.getResource("/resource/getOneCoin.wav"));
             soundGetOneCoin.play();        
        }
        public static void getManyCoin()
        {
              AudioClip soundGetManyCoin = null;
             soundGetManyCoin = Applet.newAudioClip(Resources.class.getResource("/resource/getManyCoin.wav"));
             soundGetManyCoin.play();        
        }
        public static void waterFlow()
        {
              AudioClip soundWaterFlow = null;
             soundWaterFlow = Applet.newAudioClip(Resources.class.getResource("/resource/waterFlow.wav"));
             soundWaterFlow.play();        
        }
    }
     

  • package utils;

    import java.awt.Image;

    import javax.swing.ImageIcon;

    import view.body.BottomPicture;
    import view.body.HeadPicture;
    public class ImageUtils
    {
          public static void addHeadPicture(HeadPicture headPicture)
          {
              ImageIcon image = new ImageIcon(HeadPicture.class.getResource("/resource/javalogo3.jpg"));
              Image img = image.getImage();
              img = img.getScaledInstance(173, 173, Image.SCALE_DEFAULT);
              image.setImage(img);
              headPicture.setIcon(image);
          }
          public static void addBottomPicture(BottomPicture bottomPicture)
          {
              ImageIcon image = new ImageIcon(BottomPicture.class.getResource("/resource/javalogo5.png"));
              Image img = image.getImage();
              img = img.getScaledInstance(280,220, Image.SCALE_DEFAULT);
              image.setImage(img);
              bottomPicture.setIcon(image);
          }
    }

  • package model;

    import java.awt.Color;
    import java.awt.Graphics;
    import javax.swing.JPanel;

    public class DrinksGif extends JPanel implements Runnable
    {
          private static final long serialVersionUID = 1L;
          public  int i= 0;
          public static Color color = new Color(0,0,0);
          public void paintComponent(Graphics g)
          {
              g.setColor(Color.WHITE);
              g.fillRect(0, 0, 80,120);
              g.setColor(color);
              g.fillRect(0, 120 - i, 80, i);
          }
          public void run()
          {
              i = 0; 
              while(i < 100)
              {
     
                  try
                  {
                      Thread.sleep(50);
                  }
                  catch(Exception e)
                  {
                  }
                     i += 2;
                  repaint();
              }
          }
    }
     

  • package model;

    public class WestNums
    {
         public static int water = 0;
         public static int coffee = 0;
         public static int milkyTea = 0;
         public static int sugar = 0;
         public static int cups = 0;
         public static int judge = 0;
        
         public static WestNums self = new WestNums();
         public static WestNums getInstance()
         {
              return self;
         }
         public void setWater(int i)
         {
             water = i;
         }
         public int getWater()
         {
             return water;
         }
         public void setCoffee(int i)
         {
             coffee = i;
         }
         public int getCoffee()
         {
             return coffee;
         }
         public void setMilkyTea(int i)
         {
             milkyTea = i;
         }
         public int getMilkyTea()
         {
             return milkyTea;
         }
         public void setSugar(int i)
         {
             sugar = i;
         }
         public int getSugar()
         {
             return sugar;
         }
         public void setCups(int i)
         {
             cups = i;
         }
         public int getCups()
         {
             return cups;
         }
         public void setJudge(int i)
         {
             judge = i;
         }
         public int getJudge()
         {
             return judge;
         }
    }
     

  • package controller;

    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.NorthNums;
    import view.body.PanelWestTop;

    public class SetCoffeeListener implements ActionListener
    {
        @SuppressWarnings("static-access")
        public void actionPerformed(ActionEvent e)
        {
            if(Conditions() == false)
            {
                System.out.println("Please add recipe first!");
                return;
            }
            if(NorthNums.getInstance().money == 0)
            {
                System.out.println("Please feed a coin  first!");
                return;    
            }
            if(controller.Temperature.t < 90)
            {
                System.out.println("Please wait for the boiling water!");
                return;    
            }
            if(SetTakeOutListener.judge == -1)
            {
                System.out.println("Please take out first!");
                return;
            }
            new WarmingRecipe();
            SetTakeOutListener.judge = -1;
            CutRecipeAndMoney();
            Input();
            Temperature.t -= 40;
            
            setDrinksThread();
            setAudio();
        }
        private void setAudio()
        {
            utils.AudioUtils.waterFlow();
        }
        @SuppressWarnings("static-access")
        private void setDrinksThread() 
        {
            view.body.PanelSouth.PanelDrinks.setVisible(true);
            view.body.PanelSouth.threadType.setVisible(true);
            view.body.PanelSouth.threadType.color = Color.BLUE;
            Thread tCoffee = new Thread(view.body.PanelSouth.threadType);
            tCoffee.start();
        }
        public static boolean Conditions()
        {
            if((WestNums.getInstance().getWater() == 0) ||(WestNums.getInstance().getCoffee() == 0)||(WestNums.getInstance().getSugar() == 0 ) ||(WestNums.getInstance().getCups() == 0))
            {
            return false;
            }
            return true;
        }
        @SuppressWarnings("static-access")
        private void CutRecipeAndMoney()
        {
            WestNums.getInstance();
            WestNums.water -= 200;
            WestNums.getInstance();
            WestNums.coffee -= 5;
            WestNums.getInstance();
            WestNums.sugar--;
            WestNums.getInstance();
            WestNums.cups--;    
            NorthNums.getInstance().money--;
        }
        @SuppressWarnings("static-access")
        private void Input()
        {
            PanelWestTop.getInstance().getAddWater().setText("" + WestNums.getInstance().water);
            PanelWestTop.getInstance().getAddCoffee().setText("" + WestNums.getInstance().coffee);
            PanelWestTop.getInstance().getAddMilkyTea().setText("" + WestNums.getInstance().milkyTea);
            PanelWestTop.getInstance().getAddSugar().setText("" + WestNums.getInstance().sugar);
            PanelWestTop.getInstance().getAddCups().setText("" + WestNums.getInstance().cups);
            NorthNums.getInstance().getLabelSumofCoins().setText("" + NorthNums.money);
        }
    }
     

  • package controller;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.PanelWestTop;

    public class SetCupsListener implements ActionListener
    {
        @SuppressWarnings("static-access")
        public void actionPerformed(ActionEvent event)
        {
            if(WestNums.getInstance().getCups() == 10)
            {
                System.out.println("Wait until running out of Cups!");
                return;
            }
            new WarmingRecipe();
            WestNums.getInstance().setCups(10);
             view.body.PanelWestTop.getInstance().getAddCups().setText("" + WestNums.getInstance().getCups());
             PanelWestTop.getInstance().getBulbCups().on = false;
            view.body.PanelWestTop.getInstance().getBulbCups().repaint();
        }
    }
     

  • package controller;

    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.NorthNums;
    import view.body.PanelWestTop;

    public class SetEspressoListener implements ActionListener
    {
        @SuppressWarnings("static-access")
        public void actionPerformed(ActionEvent e)
        {
            if(Conditions() == false)
            {
                System.out.println("Please add recipe first!");
                return;
            }
            if(NorthNums.getInstance().money == 0)
            {
                System.out.println("Please feed a coin  first!");
                return;    
            }
            if(controller.Temperature.t < 90)
            {
                System.out.println("Please wait for the boiling water!");
                return;    
            }
            if(SetTakeOutListener.judge == -1)
            {
                System.out.println("Please take out first!");
                return;
            }
            setDrinksThread();
            SetTakeOutListener.judge = -1;
            CutRecipeAndMoney();
            Input();
            Temperature.t -= 40;
            new WarmingRecipe();
            
            setAudio();
        }
        private void setAudio()
        {
            utils.AudioUtils.waterFlow();
        }
        @SuppressWarnings("static-access")
        private void setDrinksThread() 
        {
            view.body.PanelSouth.PanelDrinks.setVisible(true);
            view.body.PanelSouth.threadType.setVisible(true);
            view.body.PanelSouth.threadType.color = Color.BLACK;
            Thread tEspresso = new Thread(view.body.PanelSouth.threadType);
            tEspresso.start();
        }
        public static boolean Conditions()
        {
            if((WestNums.getInstance().getWater() == 0) ||(WestNums.getInstance().getCoffee() == 0)||(WestNums.getInstance().getSugar() == 0 ) ||(WestNums.getInstance().getCups() == 0))
                     {
                     return false;
                     }
            return true;
        }
        @SuppressWarnings("static-access")
        private void CutRecipeAndMoney()
        {
            WestNums.getInstance();
            WestNums.water -= 200;
            WestNums.getInstance();
            WestNums.coffee -= 10;
            WestNums.getInstance();
            WestNums.sugar--;
            WestNums.getInstance();
            WestNums.cups--;    
            NorthNums.getInstance().money--;
        }
        @SuppressWarnings("static-access")
        private void Input()
        {
            PanelWestTop.getInstance().getAddWater().setText("" + WestNums.getInstance().water);
            PanelWestTop.getInstance().getAddCoffee().setText("" + WestNums.getInstance().coffee);
            PanelWestTop.getInstance().getAddMilkyTea().setText("" + WestNums.getInstance().milkyTea);
            PanelWestTop.getInstance().getAddSugar().setText("" + WestNums.getInstance().sugar);
            PanelWestTop.getInstance().getAddCups().setText("" + WestNums.getInstance().cups);
            NorthNums.getInstance().getLabelSumofCoins().setText("" + NorthNums.money);
        }
    }
     

  • package controller;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.NorthNums;

    public class SetFeedCoinsListener implements ActionListener
    {
        private static int flag = 0;
        public void actionPerformed(ActionEvent event)
          {
            ConditionsToFeedCoins();
            if(flag == 0)
            {
                System.out.println("Please add the recipe first!");
                return;
            }
            if(Temperature.t <  90)
            {
                System.out.println("Please wait for the boiling water!");
                return;
            }
            setAudioAndCutMoney();
            new WarmingRecipe();
          }
        private void setAudioAndCutMoney()
        {
            utils.AudioUtils.putOneCoin();
            NorthNums.getInstance();
            NorthNums.money++;
            NorthNums.getInstance();
            NorthNums.getInstance().getLabelSumofCoins().setText("" + NorthNums.money);
        }
        private void ConditionsToFeedCoins()
        {
            if(WestNums.getInstance().getWater() == 2000) 
                if(WestNums.getInstance().getCoffee() == 100) 
                   if(WestNums.getInstance().getMilkyTea() == 100)
                      if(WestNums.getInstance().getSugar() == 10 )
                         if(WestNums.getInstance().getCups() == 10)
                         {
                             flag = 1;
                         }
        }
    }

 

  • package controller;

    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.NorthNums;
    import view.body.PanelWestTop;

    public class SetMilkyTeaListener implements ActionListener
    {
        @SuppressWarnings("static-access")
        public void actionPerformed(ActionEvent e)
        {
            if(Conditions() == false)
            {
                System.out.println("Please add recipe first!");
                return;
            }
            if(NorthNums.getInstance().money == 0)
            {
                System.out.println("Please feed a coin  first!");
                return;    
            }
            if(controller.Temperature.t < 90)
            {
                System.out.println("Please wait for the boiling water!");
                return;    
            }
            if(SetTakeOutListener.judge == -1)
            {
                System.out.println("Please take out first!");
                return;
            }
            SetTakeOutListener.judge = -1;
            CutRecipeAndMoney();
            Input();
            Temperature.t -= 40;
            new WarmingRecipe();
            setDrinksThread();
            setAudio();
        }
        private void setAudio()
        {
            utils.AudioUtils.waterFlow();
        }
        @SuppressWarnings("static-access")
        private void setDrinksThread() 
        {
            view.body.PanelSouth.PanelDrinks.setVisible(true);
            view.body.PanelSouth.threadType.setVisible(true);
            view.body.PanelSouth.threadType.color = Color.GREEN;
             Thread tMilkyTea = new Thread(view.body.PanelSouth.threadType);
            tMilkyTea.start();
        }
        public static boolean Conditions()
        {
            if((WestNums.getInstance().getWater() == 0) ||(WestNums.getInstance().getMilkyTea() == 0)||(WestNums.getInstance().getSugar() == 0 ) ||(WestNums.getInstance().getCups() == 0))
            {
            return false;
            }
            return true;
        }
        @SuppressWarnings("static-access")
        private void CutRecipeAndMoney()
        {
            WestNums.getInstance();
            WestNums.water -= 200;
            WestNums.getInstance();
            WestNums.milkyTea -= 10;
            WestNums.getInstance();
            WestNums.sugar--;
            WestNums.getInstance();
            WestNums.cups--;    
            NorthNums.getInstance().money--;
        }
        @SuppressWarnings("static-access")
        private void Input()
        {
            PanelWestTop.getInstance().getAddWater().setText("" + WestNums.getInstance().water);
            PanelWestTop.getInstance().getAddCoffee().setText("" + WestNums.getInstance().coffee);
            PanelWestTop.getInstance().getAddMilkyTea().setText("" + WestNums.getInstance().milkyTea);
            PanelWestTop.getInstance().getAddSugar().setText("" + WestNums.getInstance().sugar);
            PanelWestTop.getInstance().getAddCups().setText("" + WestNums.getInstance().cups);
            NorthNums.getInstance().getLabelSumofCoins().setText("" + NorthNums.money);
        }
    }
     

  • package controller;

    import java.awt.event.ActionEvent;


    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.PanelWestTop;

    public class SetPowderListener implements ActionListener 
    {
           @SuppressWarnings("static-access")
        public void actionPerformed(ActionEvent event)
           {
               if(model.WestNums.getInstance().getCoffee() == 0 || model.WestNums.getInstance().getMilkyTea() == 0)
               {
                   new WarmingRecipe();
                    setRecipeandLights();
               }
           }
        @SuppressWarnings("static-access")
        private void setRecipeandLights()
        {
               model.WestNums.getInstance().setCoffee(100);
               view.body.PanelWestTop.getInstance().getAddCoffee().setText("" + WestNums.getInstance().getCoffee());
               PanelWestTop.getInstance().getBulbCoffee().on =false;
               view.body.PanelWestTop.getInstance().getBulbCoffee().repaint();
               model.WestNums.getInstance().setMilkyTea(100);
               view.body.PanelWestTop.getInstance().getAddMilkyTea().setText("" + WestNums.getInstance().getMilkyTea());
               PanelWestTop.getInstance().getBulbMilkyTea().on = false;
               view.body.PanelWestTop.getInstance().getBulbMilkyTea().repaint();
        }
    }
     

  • package controller;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import utils.AudioUtils;
    import view.body.NorthNums;

    public class SetRefundListener implements ActionListener
    {
        @SuppressWarnings("static-access")
        public void actionPerformed(ActionEvent event)
        {
            if(NorthNums.getInstance().money == 0)
            {
                System.out.println("Please feed a coin coin to trade!");
                return;
            }
            else if(NorthNums.getInstance().money == 1)
            {
                AudioUtils.getOneCoin();
            }
            else
            {
                AudioUtils.getManyCoin();
            }
            new WarmingRecipe();
            NorthNums.getInstance().money = 0;
            NorthNums.getInstance().getLabelSumofCoins().setText("" + NorthNums.getInstance().money);
        }
    }
     

  • package controller;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.PanelWestTop;

    public class SetSugarListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            if(WestNums.getInstance().getSugar() == 2000)
            {
                System.out.println("Wait until running out of Sugar!");
                return;
            }
            new WarmingRecipe();
            setRecipeandLights();
        }
        @SuppressWarnings("static-access")
        private void setRecipeandLights()
        {
            WestNums.getInstance().setSugar(10);
            view.body.PanelWestTop.getInstance().getAddSugar().setText("" + WestNums.getInstance().getSugar());
            PanelWestTop.getInstance().getBulbSugar().on = false;
            view.body.PanelWestTop.getInstance().getBulbSugar().repaint();
        }
    }

  • package controller;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    public class SetTakeOutListener implements ActionListener
    {
        public static int judge = 0;
        public void actionPerformed(ActionEvent e)
        {
            judge = 1;
            new WarmingRecipe();
            view.body.PanelSouth.PanelDrinks.setVisible(false);
            view.body.PanelSouth.threadType.setVisible(false);
        }
    }

  • package controller;

    import java.awt.event.ActionEvent;


    import java.awt.event.ActionListener;

    import model.WestNums;
    import view.body.PanelWestTop;

    public class SetWaterListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            if(WestNums.getInstance().getWater() == 2000)
            {
                System.out.println("Wait until running out of water!");
                return;
            }
            new WarmingRecipe();
            setRecipeAndLights();
        }
        private void setRecipeAndLights() 
        {
            Temperature.t -= 30;
            WestNums.getInstance().setWater(2000);
            view.body.PanelWestTop.getInstance().getAddWater().setText("" + WestNums.getInstance().getWater());
            PanelWestTop.getInstance().getBulbWater();
            view.body.PanelWestTop.getInstance().getBulbWater().on = false;
            view.body.PanelWestTop.getInstance().getBulbWater().repaint();
        }
    }

  • package controller;

    public class Temperature implements Runnable
    {
         public static int t = 20;
         @SuppressWarnings("static-access")
        public void run()
         {
                new WarmingRecipe();
                 while(true)
                     {
                                 while(Temperature.t <= 95)
                                 {
                                         Temperature.t += 5;
                                         view.body.NorthNums.getInstance().getLabelTemperature().setText(""+ Temperature.t+"℃");
                                         view.body.NorthNums.getInstance().getLabelTemperature().repaint();
                                         try 
                                         {
                                             Thread.sleep(500);
                                         }    
                                         catch(Exception e)
                                         {
                                         }
                                 }
                             try 
                             {
                                 Thread.sleep(500);
                             }    
                             catch(Exception e)
                             {
                             }
                     }
             }
     }

  • package controller;

    public class WarmingRecipe 
    {
         @SuppressWarnings("static-access")
        public WarmingRecipe()
         {
             if(model.WestNums.getInstance().water == 0)
             {
                 view.body.PanelWestTop.getInstance().getBulbWater().on = true;
                 view.body.PanelWestTop.getInstance().getBulbWater().repaint();
                 view.body.PanelWestTop.getInstance().getAddWater().setText("+ water");
             }
             if(model.WestNums.getInstance().coffee == 0)
             {
                 view.body.PanelWestTop.getInstance().getBulbCoffee().on = true;
                 view.body.PanelWestTop.getInstance().getBulbCoffee().repaint();
                 view.body.PanelWestTop.getInstance().getAddCoffee().setText("+ coffee");
             }
             if(model.WestNums.getInstance().milkyTea == 0)
             {
                 view.body.PanelWestTop.getInstance().getBulbMilkyTea().on = true;
                 view.body.PanelWestTop.getInstance().getBulbMilkyTea().repaint();
                 view.body.PanelWestTop.getInstance().getAddMilkyTea().setText("+ milky tea");
             }
             if(model.WestNums.getInstance().sugar == 0)
             {
                 view.body.PanelWestTop.getInstance().getBulbSugar().on = true;
                 view.body.PanelWestTop.getInstance().getBulbSugar().repaint();
                 view.body.PanelWestTop.getInstance().getAddSugar().setText("+ sugar");
             }
             if(model.WestNums.getInstance().cups == 0)
             {
                 view.body.PanelWestTop.getInstance().getBulbCups().on = true;
                 view.body.PanelWestTop.getInstance().getBulbCups().repaint();
                 view.body.PanelWestTop.getInstance().getAddCups().setText("+ cups");
             }
         }
    }
     

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值