Как обработать введеное значение переменных из разных текстовых блоков - Java

Узнай цену своей работы

Формулировка задачи:

как работать с переменными которым присваивается значение введенное из разных текстовых полей, если область действия переменных ограничена в своем блоке, а мне нужно собрать введенные значения всех переменных из разных TextField, а потом проделать разные арифметические операции. Если объявить переменные вне блока то разные арифметические операции происходят с нулями, а не с полученными числами из текстовых полей
Листинг программы
  1. double c12 = 0;
  2. double c22 = 0;
  3. double c32 = 0;
  4. // ввод числа 1
  5. JFormattedTextField TextField1 =
  6. new JFormattedTextField(NumberFormat.getIntegerInstance());
  7. TextField1.setColumns(10);
  8. TextField1.setValue(new Integer(0));
  9. Number TextField1 = (Number) TextField1.getValue();
  10. TextField1.addKeyListener(new KeyListener() {
  11. public void keyPressed(KeyEvent ea) {
  12. }
  13. public void keyReleased(KeyEvent ea) {
  14. String с11 = TextField1.getText();
  15. double с12 = Double.valueOf(TextField1);
  16. }
  17. public void keyTyped(KeyEvent ea) {
  18. }
  19. });
  20. // ввод числа 2
  21. JFormattedTextField TextField2 =
  22. new JFormattedTextField(NumberFormat.getIntegerInstance());
  23. TextField2.setColumns(10);
  24. TextField2.setValue(new Integer(0));
  25. Number TextField2 = (Number) TextField2.getValue();
  26. TextField2.addKeyListener(new KeyListener() {
  27. public void keyPressed(KeyEvent ea) {
  28. }
  29. public void keyReleased(KeyEvent ea) {
  30. String с21 = TextField2.getText();
  31. double с22 = Double.valueOf(TextField2);
  32. }
  33. public void keyTyped(KeyEvent ea) {
  34. }
  35. });
  36. // ввод числа 3
  37. JFormattedTextField TextField3 =
  38. new JFormattedTextField(NumberFormat.getIntegerInstance());
  39. TextField3.setColumns(10);
  40. TextField3.setValue(new Integer(0));
  41. Number TextField2 = (Number) TextField2.getValue();
  42. TextField3.addKeyListener(new KeyListener() {
  43. public void keyPressed(KeyEvent ea) {
  44. }
  45. public void keyReleased(KeyEvent ea) {
  46. String с31 = TextField3.getText();
  47. double с32 = Double.valueOf(TextField3);
  48. }
  49. public void keyTyped(KeyEvent ea) {
  50. }
  51. });
  52.  
  53. double c4 = 12 + с22) * с33;
  54. Label1.setText("Значение (с12 + с22) * с33 = " +c4);
Это что на java невозможно реализовать? Получить и обработать поток данных из фреймворка, если для консоли есть операторы получающие введенные пользователем данные и дальше с ними можно что угодно делать, то для фреймворка ничего такого я ни в одном учебнике не нашел. Я тогда не пойму для чего нужна java, чтобы писать архаичные программки для работы в консоли?

Решение задачи: «Как обработать введеное значение переменных из разных текстовых блоков»

textual
Листинг программы
  1. public class Example extends JFrame {
  2.  
  3. public static String c11; // объявить публично и статично переменную тип String именно с заглавной буквы
  4. public static double c12; // для double не знаю почему можно с маленькой
  5.  
  6. public static void createGUI() {
  7.  
  8. JLabel Label1 = new JLabel();
  9.  
  10. try { // для компиляции и создании jar в eclipse нужен метод try
  11. // я пишу в блокноте и компилирю в консоли у меня работает без try не знаю почему так
  12.  
  13. // ввод числа 1
  14. JFormattedTextField TextField1 =
  15. new JFormattedTextField(NumberFormat.getIntegerInstance());
  16. TextField1.setColumns(10);
  17. TextField1.setValue(new Integer(0));
  18. Number TextField1 = (Number) TextField1.getValue();
  19.  
  20. TextField1.addKeyListener(new KeyListener() {
  21. public void keyPressed(KeyEvent ea) {
  22. }
  23. public void keyReleased(KeyEvent ea) {
  24. String с11 = TextField1.getText();
  25. // double с12 = Double.valueOf(TextField1); в скобках вместо TextField1 нужно указать переменную с11
  26. // тоже самое в блоках TextField2, TextField3 (с12 с13 )
  27. double с12 = Double.valueOf11); // должно быть так, переменная с11 тип String переводится в тип double
  28. }
  29. public void keyTyped(KeyEvent ea) {
  30. }
  31. });
  32.  
  33. // ввод числа 2
  34. JFormattedTextField TextField2 =
  35. new JFormattedTextField(NumberFormat.getIntegerInstance());
  36. TextField2.setColumns(10);
  37. TextField2.setValue(new Integer(0));
  38. Number TextField2 = (Number) TextField2.getValue();
  39.  
  40. TextField2.addKeyListener(new KeyListener() {
  41. public void keyPressed(KeyEvent ea) {
  42. }
  43.  
  44. public void keyReleased(KeyEvent ea) {
  45. String с21 = TextField2.getText();
  46. double с22 = Double.valueOf(c21);
  47.   /*
  48.   в KeyListener TextField2 вставляем переменные которым присвоено значение из блока KeyListener TextField1 :
  49.   переменная String с11 которая объявлена глобально и статично в начале класса
  50.   переменная double с22 которая объявлена глобально и статично в начале класса
  51.   */
  52. String с11 = TextField1.getText();
  53. double с12 = Double.valueOf11);
  54. double c4 = c12 + с22;
  55.   /*
  56.   Теперь в тот момент когда в поле TextField2 пользователь отпускает клавишу с цифрой
  57.   берется значение переменной с12 из текстового поля TextField1
  58.   и прибавляется значение переменной c22 введенное в TextField2
  59.   на тот случай если пользователь ни чего не ввел в поле TextField1
  60.   то благодаря строке TextField1.setValue(new Integer(0)); берется 0
  61.   */
  62. Label1.setText("Значение заработало с12 + с22 = " +c4);
  63. }
  64.  
  65. public void keyTyped(KeyEvent ea) {
  66. }
  67. });
  68.  
  69. } catch (NumberFormatException e) {
  70. System.out.println("Неверный формат строки!");
  71. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы