📄 rotateaction.java
字号:
package app.action;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import draw.PaintCanvas;
import draw.View;
/**
* 旋转当前图形的Action,主要用于键盘控制
*
* @author Thihy
*
*/
public abstract class RotateAction extends AbstractAction {
protected double theta;
protected View view;
/**
* 初始化这个Action。
*
* @param view
* 当前Action所控制的画布
* @param theta
* 旋转的角度,顺时针为正
*/
public RotateAction(View view, double theta) {
super();
this.view = view;
this.theta = theta;
}
/**
* 按照指定的theta旋转当前图形
*/
@Override
public void actionPerformed(ActionEvent e) {
try {
PaintCanvas gbc = view.getCanvas();
gbc.rotateCurrentFiguare(theta);
} catch (NullPointerException evt) {
// 啥也不做
}
}
/**
* 向右旋转45度
*
* @author Thihy
*
*/
public static class Right extends RotateAction {
public final static String ID = "rotateRight";
public Right(View view) {
super(view, 45);
}
}
/**
* 向左旋转45度
*
* @author Thihy
*
*/
public static class Left extends RotateAction {
public final static String ID = "rotateLeft";
public Left(View view) {
super(view, -45);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -