2013-10-01 5 views
3

Я делаю программу GUI. В моей первой программе у меня есть следующий код:Получить текст с текстового поля

double num1; 
num1 = Double.parseDouble(guess.getText()); 

Я считаю, что этот код получает значение из текстового поля и преобразует его в два раза.

Как я могу получить значение и преобразовать его в String или Char?

ответ

0

getText() уже возвращает текст как строку. Btw, будьте осторожны с исключениями из-за ошибки синтаксического анализа. Но ты на правильном пути. :)

0

Метод getText() возвращает строку. когда вы используете .parseDouble то, что вы действительно делаете, это превратить строку, введенную пользователем, и в двойную, поэтому в случае строки вам не нужно использовать метод .parse, потому что вызываемое значение уже является строкой. В случае персонажа вы бы использовать что-то вроде этого:

String text = jTextField1.getText(); 
if (text.length() > 1 && !text.contains(" ") && !text.contains(",")) { 
    //make sure that its length is not over 1, and that it has no spaces and no commas 
    char ch = text; 
} else { 
    //if a space or comma was found no matter how big the text it will execute the else.. 
    System.out.println("this is not allowed"); 
    jTextField1.setText(""); 
} 
+0

Ваша логика для 'char' случае кажется немного запутанным. Чего вы пытались достичь? – afsantos

+0

@afsantos Что-то вроде этого: char abc = String; – Ayvadia

2

Поскольку getText() уже возвращает String, сохраняя свое значение как String тривиально.

Для того чтобы разобрать double, вы уже это сделали, просто следите за NumberFormatException, в случае неправильного ввода.

Чтобы сохранить его значение как char, это зависит от ваших требований. Вы хотите первого персонажа? Вам требуется, чтобы строка имела только один символ? Является ли какой-либо символ действительным? И так далее.

// Storing the value as a String. 
String value = guess.getText(); 

// Storing the value as a double. 
double doubleValue; 
try { 
    doubleValue = Double.parseDouble(value); 
} catch (NumberFormatException e) { 
    // Invalid double String. 
} 

// Storing the value as a char. 
char firstChar = value.length() > 0 ? value.charAt(0) : (char) 0; 

// Require the String to have exactly one character. 
if (value.length() != 1) { 
    // Error state. 
} 
char charValue = value.charAt(0); 
-1

getText() функция уже извлекает String значение из Textfield.

Например:

String var = guess.getText(); 

Здесь var хранит значение String полученного от Textfield.

1

использование String.valueOf() вместо Double.parseDouble(), это поможет вам преобразовать дважды в строковое значение

Смежные вопросы