📄 baseshape.java
字号:
/**
*声明:1、本程序是作为金鹰教育网学习Java基本语法的例子。可以自由使用,但必须保留此声明!
* 2、具体的介绍、说明文档,请见金鹰教育网:www.eagledu.org
* 3、有问题的,请到金鹰教育网:www.eagledu.org中的Java标准版本课程中提出,我们会及时给予答复!
* 4、有其它想法的,也可直接交流:eagleduorg@126.com
*/
import java.awt.*;
//是所有图形的基类
abstract class BaseShape
{
private int rotateFlag=0;//保存旋转到第几下
protected Pane pane[]=new Pane[4];//每个图形由四个方格所组成
protected int xpos=100,ypos=0;//基点的位置,默认时其位置为第一行的中间
//指定一个参考点,形成一个特定的图形
public void setShape(int x,int y)
{
xpos=x;
ypos=y;
switch(rotateFlag)
{
case 0:
defaultRotate();
break;
case 1:
firstRotate();
break;
case 2:
secondRotate();
break;
case 3:
thirdRotate();
break;
}
}
//画图形
public void paint(Graphics g)
{
for(int i=0;i<4;i++)
{
pane[i].paint(g);
}
}
//顺转的计数
public void rotate()
{
rotateFlag++;
if(rotateFlag==4)
{
rotateFlag=0;
}
}
//逆转动的计数
public void contraRotate()
{
rotateFlag--;
if(rotateFlag==-1)
{
rotateFlag=3;
}
}
//默认时各方格形成图形的算法
protected abstract void defaultRotate();
//第一次旋转后各方格形成图形的算法
protected abstract void firstRotate();
//第二次旋转后各方格形成图形的算法
protected abstract void secondRotate();
//第三次旋转后各方格形成图形的算法
protected abstract void thirdRotate();
//得到方格左边的位置
public int getLeft()
{
int xLoc[]={pane[0].getX(),pane[1].getX(),pane[2].getX(),pane[3].getX()};
int min=xLoc[0];
for(int i=1;i<4;i++)
{
if(xLoc[i]<min)
{
min=xLoc[i];
}
}
return min;
}
//得到方格右边的位置
public int getRight()
{
int xLoc[]={pane[0].getX(),pane[1].getX(),pane[2].getX(),pane[3].getX()};
int max=xLoc[0];
for(int i=1;i<4;i++)
{
if(xLoc[i]>max)
{
max=xLoc[i];
}
}
return max+20;
}
//得到方格最底边的位置
public int getBottom()
{
int yLoc[]={pane[0].getY(),pane[1].getY(),pane[2].getY(),pane[3].getY()};
int max=yLoc[0];
for(int i=1;i<4;i++)
{
if(yLoc[i]>max)
{
max=yLoc[i];
}
}
return max+20;
}
//返回对应方格的下标
public int[] getPaneSuffix(int index)
{
return pane[index].getCellSuffix();
}
//返回对应的方格
public Pane getPane(int index)
{
return pane[index];
}
//返回图形的位置
public int[] getShapeLocation()
{
int loc[]={xpos,ypos};
return loc;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -