private void createBackgroundThread() {
        this.readThread = new Thread() {
            @Override
            public void run() {
                while (!isInterrupted()) {
                    if (PreviewPanel.this.skin.isChanged() || PreviewPanel.this.firstStart) {
                        PreviewPanel.this.firstStart = false;

                        try {
                            if (PreviewPanel.this.skin.getBackgroundImgChanged() && (PreviewPanel.this.skin.getBackground() != null)) {
                                PreviewPanel.this.backgroundImage = ImageIO.read(PreviewPanel.this.skin.getBackground().toFile());
                            } else {
                                PreviewPanel.this.backgroundImage = ImageIO.read(SkinConstants.UIDefaultImagePaths.BACKGROUND_PREVIEW
                                        .getPath().toFile());
                            }
                        } catch (IOException e) {
                            Main.getLogger().error("IOExc in the backgroundimage reader thread.", e);
                        }
                    }

                    try {
                        sleep(GUIConstants.REPAINTTICK);
                    } catch (InterruptedException e) {
                        interrupt();
                    }
                }
            }
        };
    }