2012-03-31 2 views
5

У меня есть JTextField с некоторым текстом. Когда я нажимаю текстовое поле, курсор перемещается в конец поля. Я хочу, чтобы курсор перемещался в начало поля, когда он фокусируется.Переместить курсор JTextField или JComboBox в начало

У меня такая же проблема с редактируемым JComboBox.

Как я могу достичь этого позиционирования курсора на фокусе?

+1

Я имею в виду, что у меня есть редактируемый JComboBox с любым текстовым содержимым, и когда я нажимаю JComboBox, я должен переместить маркер в начало редактируемого JComboBox. По умолчанию он переходит в конец текстового поля. Когда я сказал начало поля, я не имею в виду первый элемент раскрывающегося списка. – Karen

+0

Спасибо за разъяснение. Моя путаница немного изменилась во время редактирования этого комментария. :) –

ответ

5
/** 
* On gaining focus place the cursor at the start of the text. 
*/ 
public class CursorAtStartFocusListener extends FocusAdapter { 

    @Override 
    public void focusGained(java.awt.event.FocusEvent evt) { 
     Object source = evt.getSource(); 
     if (source instanceof JTextComponent) { 
      JTextComponent comp = (JTextComponent) source; 
      comp.setCaretPosition(0); 
     } else { 
      Logger.getLogger(getClass().getName()).log(Level.INFO, 
        "A text component expected instead of {0}", 
        source.getClass().getName()); 
     } 
    } 
} 

jTextField1.addFocusListener(new CursorAtStartFocusListener()); 
jComboBox1.getEditor().getEditorComponent().addFocusListener(new CursorAtStartFocusListener()); 
// Only one instance of CursorAtStartFocusListener needed. 
0

Я думаю, что это может быть то, что вы ищете:

JTextField t = new JTextField(); 
t.setHorizontalAlignment(JTextField.LEFT); 
2

Вы можете использовать эту команду

comp.setCaretPosition (индекс);

есть указатель поворота позиция.