public void removeDataTableObject(final int index) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				// gibt es diesen Index überhaupt?
				int upperHeight = _emptyDummyUpperViewportPanel.getSize().height;
				int viewportHeight = _viewportPanel.getSize().height;
				int lowerHeight = _lowerViewportPanel.getSize().height;
				int value = _verticalScrollBar.getModel().getValue();
				_screenHeight = _verticalScrollBar.getVisibleAmount();
				
				if(index >= _firstRow && index <= _lastRow) {
					// welche Zeile löschen
					
					DataTableObjectRenderer renderer = _dtoRenderers.get(index);
					viewportHeight -= renderer.getHeight();
					
					renderer.unsetLinks();
					_dtoRenderers.remove(index);
					int row = index - _firstRow;
					_rowHeaderPanel.remove(row);
					_viewportPanel.remove(row);
					// ggf. neue hinzufügen - aber nur, wenn Datensatz existiert
					if(_dtoRenderers.size() > 0 && _firstRow < _dtoRenderers.size()) {
						DataTableObjectRenderer firstRenderer = _dtoRenderers.get(_firstRow);
						int firstRowHeight = firstRenderer.getHeight();
						while((upperHeight + viewportHeight < 
								value + _screenHeight + firstRowHeight) && (_lastRow < _dtoRenderers.size())) {
							DataTableObjectRenderer lastRenderer = _dtoRenderers.get(_lastRow++);
							lastRenderer.setLinks();

							



							JComponent rowHeaderRow = lastRenderer.getRowHeaderRow(TIME_FORMAT);
							JComponent viewportRow = lastRenderer.getViewportRow();
							
							int lastRowHeight = lastRenderer.getHeight();
							viewportHeight += lastRowHeight;
							lowerHeight -= lastRowHeight;
							
							rowHeaderRow.setPreferredSize(new Dimension(rowHeaderRow.getPreferredSize().width, lastRowHeight));
							rowHeaderRow.setMaximumSize(new Dimension(rowHeaderRow.getMaximumSize().width, lastRowHeight));
							viewportRow.setMaximumSize(new Dimension(viewportRow.getMaximumSize().width, lastRowHeight));

							_rowHeaderPanel.add(rowHeaderRow);
							_viewportPanel.add(viewportRow);
						}
						_lastRow--;
						
						int componentCount = _viewportPanel.getComponentCount();
						if(componentCount != ((_lastRow - _firstRow) + 1)) {
							_debug.error("Anzahl der Komponenten stimmt nicht mit _firstRow und _lastRow überein!");
						}
					}
				}
				else {
					DataTableObjectRenderer renderer = _dtoRenderers.get(index);
					int height = renderer.getHeight();
					if(index < _firstRow) {
						upperHeight -= height;
						_verticalScrollBar.getModel().setValue(_verticalScrollBar.getModel().getValue() - height);
					}
					else { // index > _lastRow
						lowerHeight -= height;
					}
					_dtoRenderers.remove(index); // Datensatz löschen
				}
				setUpperPanel(upperHeight);
				setLowerPanel(lowerHeight);
				_scrollPane.validate();
			}
		});
	}