我的 ActionListener 是否破坏了我的动画?

问题描述

我正在大学学习 Java 课程,我有一个期末项目,我必须在按下 J 按钮时启动动画。我有一个菜单类和一个动画类。我可以从菜单类中的任何位置播放动画,除非我从动作侦听器播放动画,然后代码运行但不显示动画。这是一个物理模拟,所以我可以在终端中看到我正在打印的所有数学运算,但帧保持空白,直到动画的最后一帧。
我正在使用提供给我们的名为“Standard Draw”的绘图和动画库,它似乎也使用了 Swing。我尝试了不同类型的监听器,但都行不通。有人有什么建议吗?

标准绘图链接https://introcs.cs.princeton.edu/java/stdlib/StdDraw.java.html

这些是我认为我目前使用的代码的相关部分是:
(课堂菜单

             new MouseListener() {
                public void mousepressed(MouseEvent e) {
                    started();
                };
                public void mouseReleased(MouseEvent e) {};
                public void mouseClicked(MouseEvent e) {};
                public void mouseEntered(MouseEvent e) {
                    start.setBackground(Color.blue);
                };
                public void mouseExited(MouseEvent e) {
                    start.setBackground(Color.red);
                }; 
--------------------------------------------------------------------------------------------------------

     public static void started(){
     getNums();
           try{
               clicked = false;
               N = Integer.parseInt(n);
               M = Double.parseDouble(m);
               L = Double.parseDouble(l);
               A = Double.parseDouble(a);
               f.dispose();
               pend = new Pendulum(N,M,L,A);
           }
           catch(Exception NumberFormatException){
               clicked = false;
               error();
           }
        } 

(在班级中)

   public Pendulum(int N,double m,double l,double a) {
       input(N,m,l,a);    
       canvas();
       animate();
   }
--------------------------------------------------------------------------------------------------------

   public static void animate(){

       stddraw.enableDoubleBuffering();

       for (double t = 0; t < 100; t += FRAME_T/1000.0) {

           ...(ALL OF MY MATH AND DRAWING)...
           
           stddraw.show();
           stddraw.pause(FRAME_T);
           stddraw.clear();
       }
       stddraw.disableDoubleBuffering();

   }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...