@Override
	public void run() {
		Sheet mysheet;
		synchronized (this){
			mysheet=sheet;
		}
		if (mysheet==null){
			this.widget.setText("keine Datei zum einsortieren");
			this.add(widget);
		}
		else{
			try {
				int width = this.getWidth();
				int height =  this.getHeight();
				if (width==0 || height==0){
					synchronized(this){
						refreshing=false;
						return;
					}
				}
				JProgressBar tmp = new JProgressBar();
				tmp.setIndeterminate(true);
				this.add(tmp);
				this.widget.setText("...lade...");
				this.add(widget);
				this.validate();
				//Bildgrösse
				
				
				//Passe relative höhe an um in Bildgrösse zu bleiben
				this.rSize.height = this.rSize.width*height/width;
				if (rPos.height<0){
					rPos.height=0;
				}
				if (rPos.height>100){
					rPos.height=100;
				}
				if (rPos.height+rSize.height>100){
					rPos.height=100-rSize.height;
				}
				Image i = sheet.getPreview(rPos, rSize, new Dimension(width,height));
				this.remove(tmp);
				this.remove(widget);
				widget.setText("");
				synchronized (this){
					this.image = i;
				}
				this.validate();
				for(ActionListener a:aListeners){
					a.actionPerformed(new ActionEvent(this, IMAGE_RELOADED, "image refreshed"));
				}
			} catch (IOException e) {
				this.widget.setText("Fehler beim Anzeigen...\n"+e.getMessage());
				this.validate();
			} catch (InvalidParameterException e){
				System.err.println(e.getMessage());
				widget.setText("Fehler");
				this.validate();
			}
			
		}
		this.validate();
		this.repaint();
		synchronized(this){
			this.refreshing=false;
		}
	}