GridLayout在Java中缩放动画

时间:2017-06-23 14:23:20

标签: java swing animation

我正在使用Java编写数独游戏,我想按照以下方式为新游戏动作制作动画:

  • 用户点击开始游戏后,每个元素都会从左上角到右下角依次显示。
  • 动画应该从相互延迟100毫秒开始,而不是同时延迟。从60%到100%,然后完成每个元素的动画。

将拼图模型加载到JPanel中的代码是:

    public void newSudoku(SudokuBoard puzzle){
    this.puzzle = puzzle;
    this.myimages = new ImageButton(this.puzzle);
    for (int i=0;i<ROWS*COLUMNS;i++)
    {
            int row = i / ROWS;
            int column = i % ROWS;
            this.mylabels[row][column] = new JLabel(myimages.getImageMatrix()[row][column]);
            this.add(this.mylabels[row][column]);
    }
}

puzzle对象具有与图像对应的1到300的数字,因此在创建ImageButton myimages时使用它。 &#34;这&#34;是我自定义的JPanel,带有3 * 3 GridLayout。

它们是这样的,它在一次运行中完全加载,因此我无法为其设置动画。我不需要动画动画,这样可以降低任务的复杂性。

1 个答案:

答案 0 :(得分:3)

  

我不需要动画动画,因此可以降低任务的复杂性。

因此,除了让所有组件都不可见外,一种方法是将所有组件添加到面板中。

然后当您单击“开始”按钮时,使用Swing Timer开始动画处理。每次Timer事件触发时,您都可以看到下一个组件。当最后一个组件可见时,您将停止Timer

阅读How to Use Swing Timers上Swing教程中的部分,了解更多信息和示例。