public void start() {
		Timer timer = new Timer(10, new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				long duration = System.currentTimeMillis() - startTime;
				progress = (double) duration / (double) runTime;
				if (progress > 1f) {
					progress = 1f;
					((Timer) e.getSource()).stop();
				}
				Rectangle target = calculateProgress(from, to, progress);
				panel.setBounds(target);
				finised();
				
			}
		});
		timer.setRepeats(true);
		timer.setCoalesce(true);
		timer.setInitialDelay(0);
		startTime = System.currentTimeMillis();
		timer.start();
	}