如果我点击按钮,图像旋转和大小下降。我想让重播按钮显示我以前点击过的动作。例如,我点击了缩放,放大,特定常规武器,CW,CW按钮,我点击了重播按钮,显示了我之前点击的所有动作。扩大规模,扩大规模,常规武器公约,化学武器,化学武器。我不知道怎么做
所有的按钮都是这样的
class ScaleUpButtonListener implements ActionListener{
private MyDrawPanel myDrawPanel;
public ScaleUpButtonListener(MyDrawPanel mymy) {
myDrawPanel = mymy;
}
public void actionPerformed(ActionEvent e) {
myDrawPanel.scaleJava(0.1);
}
}以及方法
public double angle = 0;
public double scale = 1.0;
public void rotateJava(double dangle) {
angle += dangle;
repaint();
}
public void scaleJava(double dsc) {
scale += dsc;
repaint();
}我需要的方法是:
public void replayJava() {
repaint();
}发布于 2020-11-12 15:40:55
您需要为每个按钮使用一个Action。Action的部分功能是将自己添加到ArrayList中。然后,对于“重播”Action,您将遍历ArrayList直接调用操作。
class ScaleAction extends AbstractAction
{
public ScaleAction()
{
putValue( Action.NAME, "Scale" );
}
public void actionPerformed(ActionEvent e)
{
// code for scaling
if (e != null)
replayList.add( this );
}
}那么“回放”操作的代码应该是这样的:
class ReplayAction extends AbstractAction
{
public ReplayAction()
{
putValue( Action.NAME, "Replay" );
}
public void actionPerformed(ActionEvent e)
{
for (Action action: replayList)
action.actionPerformed( null );
}
}有关更多信息,请阅读有关如何使用动作的Swing教程中的部分。
您的操作将定义为主类中的内部类,以便它们都可以访问"replayList“。
https://stackoverflow.com/questions/64806089
复制相似问题