JTextfield, как проверить содержимое в методе getText () - PullRequest
0 голосов
/ 22 апреля 2011

У меня есть текстовое поле с именем x.

Когда текстовое поле содержит "", я хочу что-то сделать. Если это не так, сделайте что-нибудь еще.

Я пытался сделать

String test = x.getText();
if(test.startsWith(" ")){buttonN.setForeground(Color.GRAY));}
else{buttonN.setForeground(Color.BLACK));}

но это не сработало. любые предложения

Ответы [ 4 ]

1 голос
/ 14 апреля 2012

Самое простое решение для любой проверки команды getText() это:

If (field.getText().isEmpty()) {
    buttonN.setForeground(Color.GRAY);
} 
else {
    buttonN.setForeground(Color.BLACK);
}
1 голос
/ 22 апреля 2011

Если вы просто хотите убедиться, что текстовое поле пустое, независимо от того, содержит ли оно пробел, табуляцию, символ новой строки и т. Д., Используйте следующее:

if(x.getText().trim().length() == 0){
    buttonN.setForeground(Color.GRAY);
}else{
    buttonN.setForeground(Color.BLACK);
}

String.trim() удаляет все пробелы в строке.

1 голос
/ 22 апреля 2011

Почему бы не использовать contains?:

 if(x.getText().contains("\u0020"))
    buttonN.setForeground(Color.GRAY);
 else
    buttonN.setForeground(Color.BLACK);

Хотя вышеупомянутое будет работать, оно не обнаружит табличный интервал . При этом я бы рекомендовал вместо этого использовать регулярное выражение :

if(Pattern.compile("\\s").matcher(x.getText()).find())
    buttonN.setForeground(Color.GRAY);
else
    buttonN.setForeground(Color.BLACK);

Ссылки .

0 голосов
/ 22 апреля 2011

(Color.GRAY)) и (Color.BLACK)) заканчиваются двумя закрывающими скобками, в то время как открыта только одна

String test = x.getText();
if (test.startsWith (" "))
{ 
     buttonN.setForeground (Color.GRAY); 
}
else buttonN.setForeground (Color.BLACK);

Некоторые пробелы в скобках делают чтение более удобным.

...