public void startRepaintTimer() {
        if (this.timer == null) {
            if ((this.readThread == null) || !this.readThread.isAlive()) {
                createBackgroundThread();
                this.readThread.start();
            }

            this.timer = new Timer(GUIConstants.REPAINTTICK, new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    repaint();
                }
            });
        }

        this.timer.start();
    }