⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qnanimator.java

📁 一个用于排队系统仿真的开源软件,有非常形象的图象仿真过程!
💻 JAVA
字号:
/**    
  * Copyright (C) 2006, Laboratorio di Valutazione delle Prestazioni - Politecnico di Milano

  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.

  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.

  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
  
package jmt.gui.common.startScreen;

import javax.swing.*;
import java.awt.*;
import java.util.Vector;

/**
 * Created by IntelliJ IDEA.
 * User: OrsotronIII
 * Date: 3-dic-2004
 * Time: 17.49.12
 * This component shows an animation representing a queue network.
 * Only for graphical purposes.
 */
public class QNAnimator extends JPanel{

    //this inner class is a thread that must repaint every 0.033 seconds the qnanimator.
    class Mover extends Thread{
        //animation to be repainted
        QNAnimator qna;
        //flag representing execution state of this thread
        boolean fRunning=false;
        //time of this animation
        long time;

        public Mover(QNAnimator animator){
            qna=animator;
        }

        public void start(){
            fRunning=true;
        }

        public void run(){
            while(fRunning){
                //while this trhead is running, repaints the animation every 0.033 seconds
                try{
                    time += 33;
                    qna.repaint(time);
                    sleep(33);
                }catch(InterruptedException e){ qna.repaint();}
            }
        }

        //pauses execution of this thread
        public void freeze(){
            fRunning=false;
        }

        //resumes execution
        public void wakeUp(){
            fRunning=true;
        }

        //stops this thread
        public void kill(){
            fRunning=false;
        }
    }

    //reference to the thread that must repaint this animation
    Mover mover;

    interface ConsumerProducer {
        public void addJob(Job j);
        public void addConsumer(ConsumerProducer cp);
    }

    //represents an edge of the queue network
    class Path {
        //time this instance was created, used set animation frames
        private long birthTime = System.currentTimeMillis();
        //speed for the jobs on this path
        private double jobSpeed;
        //angles of this path
        private int[] xPoints, yPoints;

        public Path(int[] xCoords, int[] yCoords, double speed){
            xPoints=xCoords;
            yPoints=yCoords;
            jobSpeed=speed;
        }
    }

    //represents a station
    class Station {
        //jobs that are currently in this station
        Vector jobs=new Vector();

    }

    //represents a job
    class Job{
        Image i;

        public Job(){

        }

        public Job(Image jobImg){
            i = jobImg;
        }

        public void paint(Graphics g, int x, int y){

        }
    }

    public QNAnimator(java.awt.LayoutManager lm){
        super(lm);
    }

}
















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -