📄 figure.java
字号:
package inline.ui.ce;
import inline.ui.*;
import java.util.*;
import javax.microedition.lcdui.*;
public class Figure extends AnimatedCanvasElement
{
private int figure;
private int ratio;
private int figure_first;
private int figure_last;
private int ratio_left;
private int ratio_right;
private int ratio_step;
public Figure(HostCanvas prnt, int x, int y, int w, int h, int ffigure)
{
super(prnt, x,y,w,h);
figure = ffigure;
ratio = 100;
setStyleable(true);
}
public Figure(HostCanvas prnt)
{
this(prnt, 0,0,0,0, 0);
}
public void paintElement(Graphics g)
{
synchronized (g)
{
int px = ((getWidth()>>1)*(100-ratio))/100;
int py = (getHeight()>>1)*(100-ratio)/100;
int pw = getWidth()*ratio/100;
int ph = getHeight()*ratio/100;
execMetaCommands(g, figure, px, py, pw, ph);
animateStep();
}
}
public void setFigure(int ffigure)
{
if (ffigure>=(figidxs.length-1)) ffigure = 0;
figure = ffigure;
repaint();
}
public int getFigure()
{
return figure;
}
public void setAnimated(int ffigure_first, int ffigure_last, int ainterval)
{
figure_first = ffigure_first;
figure_last = ffigure_last;
figure = figure_first;
if (ainterval>0)
{
setAnimated(true);
setInterval(ainterval);
}
}
public void setRatio(int rratio_init, int rratio_left, int rratio_right, int rstep)
{
ratio_left = rratio_left;
ratio_right = rratio_right;
ratio = rratio_init;
ratio_step = rstep;
}
protected void onAnimate()
{
repaint();
}
private void animateStep()
{
if (figure_first==figure_last)
{
// not animated
}
else if (figure_first<figure_last)
{
figure++;
if (figure>figure_last) figure = figure_first;
}
else
{
figure--;
if (figure<figure_last) figure = figure_first;
}
if (ratio_step!=0)
{
ratio = ratio + ratio_step;
if (ratio>ratio_right)
{
ratio = ratio_right;
ratio_step = -ratio_step;
}
else if (ratio<ratio_left)
{
ratio = ratio_left;
ratio_step = -ratio_step;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -