Как обработать введеное значение переменных из разных текстовых блоков - 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("Неверный формат строки!"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д