Я пытаюсь что-то узнать о GUI, используя NetBeans6.8, начиная с раздела GUI в руководстве по Java.
Существует простое упражнение для конвертора Цельсия-Фаренгейта. Я хочу, чтобы было два TextFields, одно для Цельсия и одно для температуры по Фаренгейту; если пользователь печатает в текстовом поле по Цельсию, он получает результат, «напечатанный» в текстовом поле по Фаренгейту. и наоборот.
Итак, я поместил в оба текстовых поля одно событие KeyTyped, вот код:
private void celsiusTextKeyTyped(java.awt.event.KeyEvent evt) {
int cels = Integer.parseInt(celsiusText.getText());
int fahr = (int)(cels * 1.8 + 32);
fahrText.setText(fahr + "");
}
private void fahrTextKeyTyped(java.awt.event.KeyEvent evt) {
int fahr = Integer.parseInt(fahrText.getText());
int cels = (int)(fahr / 1.8 - 32);
celsiusText.setText(cels + "");
}
Это не работает. Если я что-то наберу в текстовом поле, я получу это исключение: java.lang.NumberFormatException: For input string: ""
Код, который прикрепляет слушателей:
celsiusText.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
celsiusTextKeyTyped(evt);
}
});
fahrText.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
fahrTextKeyTyped(evt);
}
});
[Однако я не могу изменить его, он автоматически генерируется.]