Detección de selección de texto en JTextArea

Tengo un JTextArea y estoy detectando si hay texto seleccionado, si no hay ninguno, entonces dos de los elementos del menú están atenuados. El problema que tengo es que, cuando compilo y abro la aplicación, primero tengo que hacer clic en JTextArea y luego los elementos del menú aparecen atenuados; si no lo hago, ni siquiera si no se selecciona ningún texto. Estoy usando el siguiente oyente caret.

    textArea.addCaretListener(new CaretListener() {

        @Override
        public void caretUpdate(CaretEvent arg0) {
            int dot = arg0.getDot();
            int mark = arg0.getMark();
            if (dot == mark) {

                copy2.setEnabled(false);
                cut1.setEnabled(false);
            }
            else{
                cut1.setEnabled(true);
                copy2.setEnabled(true);
            }

        }
    });