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

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

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

как работать с переменными которым присваивается значение введенное из разных текстовых полей, если область действия переменных ограничена в своем блоке, а мне нужно собрать введенные значения всех переменных из разных TextField, а потом проделать разные арифметические операции. Если объявить переменные вне блока то разные арифметические операции происходят с нулями, а не с полученными числами из текстовых полей
double c12 = 0;
double c22 = 0;
double c32 = 0;
 
// ввод числа 1
JFormattedTextField TextField1 = 
new JFormattedTextField(NumberFormat.getIntegerInstance());
TextField1.setColumns(10);
TextField1.setValue(new Integer(0));
Number TextField1 = (Number) TextField1.getValue();
 
TextField1.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent ea) {
}
public void keyReleased(KeyEvent ea) {
String с11 = TextField1.getText();
double с12 = Double.valueOf(TextField1);
}
public void keyTyped(KeyEvent ea) {
}
});
 
// ввод числа 2
JFormattedTextField TextField2 = 
new JFormattedTextField(NumberFormat.getIntegerInstance());
TextField2.setColumns(10);
TextField2.setValue(new Integer(0));
Number TextField2 = (Number) TextField2.getValue();
 
TextField2.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent ea) {
}
public void keyReleased(KeyEvent ea) {
String с21 = TextField2.getText();
double с22 = Double.valueOf(TextField2);
}
public void keyTyped(KeyEvent ea) {
}
});
 
// ввод числа 3
JFormattedTextField TextField3 = 
new JFormattedTextField(NumberFormat.getIntegerInstance());
TextField3.setColumns(10);
TextField3.setValue(new Integer(0));
Number TextField2 = (Number) TextField2.getValue();
 
TextField3.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent ea) {
}
public void keyReleased(KeyEvent ea) {
String с31 = TextField3.getText();
double с32 = Double.valueOf(TextField3);
}
public void keyTyped(KeyEvent ea) {
}
});

double c4 = (с12 + с22) * с33;
Label1.setText("Значение (с12 + с22) * с33 = " +c4);
Это что на java невозможно реализовать? Получить и обработать поток данных из фреймворка, если для консоли есть операторы получающие введенные пользователем данные и дальше с ними можно что угодно делать, то для фреймворка ничего такого я ни в одном учебнике не нашел. Я тогда не пойму для чего нужна java, чтобы писать архаичные программки для работы в консоли?

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

textual
Листинг программы
public class Example extends JFrame {
 
public static String c11; // объявить публично и статично переменную тип String именно с заглавной буквы
public static double c12; // для double не знаю почему можно с маленькой
 
public static void createGUI() {
 
JLabel Label1 = new JLabel();
 
try { // для компиляции и создании jar в eclipse нужен метод try
// я пишу в блокноте и компилирю в консоли у меня работает без try не знаю почему так
 
// ввод числа 1
JFormattedTextField TextField1 = 
new JFormattedTextField(NumberFormat.getIntegerInstance());
TextField1.setColumns(10);
TextField1.setValue(new Integer(0));
Number TextField1 = (Number) TextField1.getValue();
 
TextField1.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent ea) {
}
public void keyReleased(KeyEvent ea) {
String с11 = TextField1.getText();
// double с12 = Double.valueOf(TextField1); в скобках вместо TextField1 нужно указать переменную с11
// тоже самое в блоках TextField2, TextField3 (с12 с13 )
double с12 = Double.valueOf(с11); // должно быть так, переменная с11 тип String переводится в тип double
}
public void keyTyped(KeyEvent ea) {
}
});
 
// ввод числа 2
JFormattedTextField TextField2 = 
new JFormattedTextField(NumberFormat.getIntegerInstance());
TextField2.setColumns(10);
TextField2.setValue(new Integer(0));
Number TextField2 = (Number) TextField2.getValue();
 
TextField2.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent ea) {
}
 
public void keyReleased(KeyEvent ea) {
String с21 = TextField2.getText();
double с22 = Double.valueOf(c21);
  /*
  в KeyListener TextField2 вставляем переменные которым присвоено значение из блока KeyListener TextField1 :
  переменная String с11 которая объявлена глобально и статично в начале класса
  переменная double с22 которая объявлена глобально и статично в начале класса
  */
String с11 = TextField1.getText();
double с12 = Double.valueOf(с11);
double c4 = c12 + с22;
  /*
  Теперь в тот момент когда в поле TextField2 пользователь отпускает клавишу с цифрой
  берется значение переменной с12 из текстового поля TextField1
  и прибавляется значение переменной c22 введенное в TextField2
  на тот случай если пользователь ни чего не ввел в поле TextField1
  то благодаря строке TextField1.setValue(new Integer(0)); берется 0
  */
Label1.setText("Значение заработало с12 + с22 = " +c4);
}
 
public void keyTyped(KeyEvent ea) {
}
});
 
} catch (NumberFormatException e) {
System.out.println("Неверный формат строки!");
}

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


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

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

14   голосов , оценка 3.786 из 5
Похожие ответы