@Override
        public void run() {
            if (SwingUtilities.isEventDispatchThread() == false) {
                long WAIT = 1500;

                while ((System.currentTimeMillis() - this.myStamp) < WAIT) {
                    try {
                        long delay = WAIT - (System.currentTimeMillis() - this.myStamp);
                        if (delay < 1) {
                            delay = 1;
                        }
                        Thread.sleep(delay);
                    } catch (Exception e) {
                        Thread.yield();
                    }
                }
                SwingUtilities.invokeLater(this);
                return;
            }

            if (this.myStamp != ColorPicker.this.hexDocListener.lastTimeStamp) {
                // another event has come along and trumped this one
                return;
            }

            if (this.text.length() > 6) {
                this.text = this.text.substring(0, 6);
            }
            while (this.text.length() < 6) {
                this.text = this.text + "0";
            }
            if (ColorPicker.this.hexField.getText().equals(this.text)) {
                return;
            }

            int pos = ColorPicker.this.hexField.getCaretPosition();
            ColorPicker.this.hexField.setText(this.text);
            ColorPicker.this.hexField.setCaretPosition(pos);
        }