2014-02-21 7 views
-2

Я хочу изменить первый символ на верхний регистр в текстовом поле.Установить первый символ в строке в верхний регистр

У меня есть это:

String output = input.substring(0, 1).toUpperCase() + input.substring(1); 

И это:

String output = Character.toUpperCase(input.charAt(0)) + input.substring(1); 

Где я должен поставить их? keyPressed? keyReleased? Пожалуйста, расскажите, как их использовать.

+0

Try использовать 'addFocusListener' –

+0

Вы хотите быть автоматическим или при нажатии клавиши, например? – nachokk

+0

Автоматический или после того, как я набрал. – user3337385

ответ

0

Используйте DocumentFilter перехват ввода пользователя и заменить его с желаемыми гольцов

Э.Г.

http://www.java2s.com/Tutorial/Java/0240__Swing/FormatJTextFieldstexttouppercase.htm

+0

Ответы на любые другие вопросы? – user3337385

+0

@ user3337385 Что не так с этим? – nachokk

+1

Я не хочу использовать DocumentFilter – user3337385

0

Вот пример addFocusListener;

jTextField.addFocusListener(new FocusListener() { 
     public void focusLost(FocusEvent e) { 
     //TODO: write here what you want 
     } 
}); 
+0

Итак, я должен поставить его на FocusListener? – user3337385

+0

Можете ли вы дать полный код? – user3337385

+0

Этот код даже компилируется .. используйте FocusAdapter, тогда я не рекомендую использовать это решение .. – nachokk

0

Обычно, когда мы вводим имена, мы должны ввести первую букву имени в форме верхнего. Таким образом, в данном случае, я решил эту проблему, как показано на рисунке сегмента кода:

private void jTextFieldKeyTyped(java.awt.event.KeyEvent evt) { 
    if (!Character.isAlphabetic(evt.getKeyChar()) && !Character.isSpaceChar(evt.getKeyChar())) { 
     evt.consume(); 
    } else if (jTextField.getText().trim().length() == 0 && Character.isLowerCase(evt.getKeyChar())) { 
      evt.setKeyChar(Character.toUpperCase(evt.getKeyChar())); 
    } 
} 
Смежные вопросы