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

📄 draggingslot.java

📁 24分扑克牌游戏
💻 JAVA
字号:
/*
 * @(#)DraggingSlot.java Version 1.0 98/03/12
 * 
 * Copyright (c) 1998 by Huahai Yang
 * 
 * Use at your own risk. I do not guarantee the fitness of this 
 * software for any purpose, and I do not accept responsibility for 
 * any damage you do to yourself or others by using this software.
 * This file may be distributed freely, provided its contents 
 * are not tampered with in any way.
 *
 */

import java.awt.*;

/**
 * slot to put a dragging image onto it. 
 */
public class DraggingSlot 
{
   int x;
   int y;
   int width;
   int height;
   
   public int type;         
   static final int CARD_SLOT = 0,
                    OPERATOR_SLOT = 1;
   
   DraggingImage holdenImage = null;
   
   static final Color emptyColor = Color.cyan,
                      fillColor = Color.red;
   
   public DraggingSlot()
   {
      x = 0;
      y = 0;
      width = 0;
      height = 0;
   } // 0 param constructor
   
   public DraggingSlot(int x, int y, int width, int height)
   {
      this.x = x;
      this.y = y;
      this.width = width;
      this.height = height;
   } // 4 param constructor   
   
   public boolean isEmpty()
   {
      return holdenImage == null;
   } // isEmpty
   
   public Point getLocation ()
   {
      return new Point(x, y);
   } // getLocation   
   
   public void setLocation ( int x, int y )
   {
      this.x = x;
      this.y = y;
   } // setLocation   
   
   public Dimension getSize ()
   {
      return new Dimension(width, height);
   } // getSize
   
   public void setSize ( int width, int height )
   {
      this.width = width;
      this.height = height;
   } // setSize   
   
   /**
    * see if slot contains a point
    */
   public boolean contains ( int xp, int yp )
   {
      return (xp >= x) && (xp < x + width) && (yp >= y) && (yp < y + height);
   } // contains
   
   /**
    * see if slot hold a draggingImage
    */
   public boolean holds ( DraggingImage image )
   {
      return holdenImage == image;
   } // holds
   
   /**
    * Judge whether a draggingImage is right on my top and
    * should be hold by me.  If its center is inside me, it should.
    */
   public boolean underneath ( DraggingImage drag )
   {
      int centerX = drag.getLocation().x + drag.getSize().width / 2;
      int centerY = drag.getLocation().y + drag.getSize().height / 2;
      return contains( centerX, centerY );
   } // underneath
   
   /**
    * fill me with a draggingImage
    */
   public void fillWith ( DraggingImage drag )
   {
      int centerX = x + width / 2;
      int centerY = y + height / 2; 
      drag.centerAt( centerX, centerY );
      drag.settle(this);
      holdenImage = drag;
      
   } // fillWith
   
   public DraggingImage getHoldenImage()
   {
      return holdenImage;
   } // getHoldImage
   
   /**
    * kick off the invader
    */
   public void kickOff ( DraggingImage invader )
   {
      invader.setLocation( invader.getLocation().x, 
                           invader.getLocation().y - height );
   } // kickOff
   
   /**
    * empty this slot
    */
   public void empty ()
   {
      if(holdenImage != null)
      {
         holdenImage.unsettle();
         holdenImage = null;
      } // if   
   } // getRideOf
   
   /**
    * remove the holden image
    */
   public void remove()
   {
      if(holdenImage != null)
      {
         kickOff(holdenImage);
         empty();
      } // if
   } // remove   
   
   public void paint (Graphics g) 
   {
      Color oldColor = g.getColor();
      
      if( isEmpty() ) g.setColor( emptyColor );
      else g.setColor( fillColor );
     
      g.drawRect(x, y, width, height);
      
      g.setColor( new Color(64, 128, 128) );
      g.drawRect(x + 2, y + 2, width - 4, height - 4);
      g.fillRect(x + 2, y + 2, width - 4, height - 4);
      g.setColor( oldColor );
   } // paint
   
} // DraggingSlot

⌨️ 快捷键说明

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