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