public void setIcon(ImageIcon Image) {
		// Exit early
		if (Image == null) {
			super.setIcon(null);
			return;
		}
		
		// Scale the image and add it to the control
		int MaxWidth = 100, MaxHeight = 100, Width = Image.getIconWidth(), Height = Image.getIconHeight();
		
		// If the window is ready update MaxWidth and MaxHeight to the right values
		if (this.getWidth() != 0 && this.getHeight() != 0) {
			MaxWidth = this.getWidth();
			MaxHeight = this.getHeight();
		}
		
		// Scale Width's aspect ratio to fit in the MaxDimension
		if (MaxWidth < Width) {
			Width = MaxWidth;
			Height = Width * Image.getIconHeight() / Image.getIconWidth();
		}
		if (MaxHeight < Height) {
			Height = MaxHeight;
			Width = Height * Image.getIconWidth() / Image.getIconHeight();
		}
		
		super.setIcon(new ImageIcon(
				Image.getImage()
					.getScaledInstance(Width, Height, java.awt.Image.SCALE_SMOOTH)
			)
		);
		
		MainFrame.getThis().repaint();
	}