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

📄 fractiondoor.java

📁 CroftSoft Code Library是一个开源的可移植的纯Java游戏库
💻 JAVA
字号:
     package com.croftsoft.apps.fraction;

     import java.applet.*;
     import java.awt.*;
     import java.awt.event.*;
     import java.awt.geom.*;
     import java.util.Random;
     import javax.swing.*;
     import javax.swing.event.*;

     import com.croftsoft.core.lang.NullArgumentException;
     import com.croftsoft.core.animation.*;
     import com.croftsoft.core.animation.sprite.*;

     /*********************************************************************
     * A Fraction door.
     *
     * @version
     *   2002-07-21
     * @since
     *   2002-04-28
     * @author
     *   <a href="http://www.croftsoft.com/">David Wallace Croft</a>
     *********************************************************************/

     public class  FractionDoor
       implements ComponentAnimator
     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     {

     private static final Color   DOOR_FRAME_COLOR
       = Color.ORANGE;

     private static final Color   NUMBERS_COLOR
       = Color.BLACK;

     private static final Color   DOOR_COLOR_CLOSED
       = Color.LIGHT_GRAY;

     private static final Color   DOOR_COLOR_HIGHLIGHTED
       = Color.YELLOW;

     private static final Color   DOOR_COLOR_OPEN
       = Color.WHITE;

     //

     private final Rectangle  rectangle;

     private final int        numerator;

     private final int        denominator;

     private final String     numeratorStr;

     private final String     denominatorStr;

     private final int        numeratorX;

     private final int        numeratorY;

     private final int        denominatorX;

     private final int        denominatorY;

     private final int        lineX1;

     private final int        lineY1;

     private final int        lineX2;

     private final int        lineY2;

     private final int        horizontalMovementY;

     private final int        verticalMovementX;

     //

     private Color  doorColor;

     //////////////////////////////////////////////////////////////////////
     // constructor methods
     //////////////////////////////////////////////////////////////////////

     public  FractionDoor (
       Rectangle      rectangle,
       int            numerator,
       int            denominator,
       int            numeratorX,
       int            numeratorY,
       int            denominatorX,
       int            denominatorY,
       int            lineX1,
       int            lineY1,
       int            lineX2,
       int            lineY2,
       int            horizontalMovementY,
       int            verticalMovementX )
     //////////////////////////////////////////////////////////////////////
     {
       NullArgumentException.check ( this.rectangle = rectangle   );

       this.numerator   = numerator;

       this.denominator = denominator;

       this.numeratorStr   = Integer.toString ( numerator   );

       this.denominatorStr = Integer.toString ( denominator );

       this.numeratorX   = numeratorX;

       this.numeratorY   = numeratorY;

       this.denominatorX = denominatorX;

       this.denominatorY = denominatorY;

       this.lineX1 = lineX1;

       this.lineY1 = lineY1;

       this.lineX2 = lineX2;

       this.lineY2 = lineY2;

       this.horizontalMovementY = horizontalMovementY;

       this.verticalMovementX   = verticalMovementX;

       reset ( );
     }

     //////////////////////////////////////////////////////////////////////
     // accessor methods
     //////////////////////////////////////////////////////////////////////

     public int  getNumerator   ( ) { return numerator;   }

     public int  getDenominator ( ) { return denominator; }

     //////////////////////////////////////////////////////////////////////
     // mutator methods
     //////////////////////////////////////////////////////////////////////

     public void  setHighlighted ( )
     //////////////////////////////////////////////////////////////////////
     {
       doorColor = DOOR_COLOR_HIGHLIGHTED;
     }

     public void  setOpen ( )
     //////////////////////////////////////////////////////////////////////
     {
       doorColor = DOOR_COLOR_OPEN;
     }

     public void  reset ( )
     //////////////////////////////////////////////////////////////////////
     {
       doorColor = DOOR_COLOR_CLOSED;
     }

     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////

     public boolean  contains (
       int  x,
       int  y )
     //////////////////////////////////////////////////////////////////////
     {
       return ( x == verticalMovementX   )
         &&   ( y == horizontalMovementY );
     }

     public int  getHorizontalMovementY ( )
     //////////////////////////////////////////////////////////////////////
     {
       return horizontalMovementY;
     }

     public int  getVerticalMovementX ( )
     //////////////////////////////////////////////////////////////////////
     {
       return verticalMovementX;
     }

     //////////////////////////////////////////////////////////////////////
     // interface ComponentAnimator methods
     //////////////////////////////////////////////////////////////////////

     public void  update ( JComponent  component )
     //////////////////////////////////////////////////////////////////////
     {
     }

     public void  paint (
       JComponent  component,
       Graphics2D  graphics2D )
     //////////////////////////////////////////////////////////////////////
     {
       graphics2D.setColor ( doorColor );

       graphics2D.fill ( rectangle );

       graphics2D.setColor ( DOOR_FRAME_COLOR );

       graphics2D.draw ( rectangle );

       graphics2D.setColor ( NUMBERS_COLOR );

       graphics2D.drawString (
         numeratorStr,
         numeratorX,
         numeratorY );

       graphics2D.drawLine (
         lineX1,
         lineY1,
         lineX2,
         lineY2 );

       graphics2D.drawString (
         denominatorStr,
         denominatorX,
         denominatorY );
     }

     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     }

⌨️ 快捷键说明

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