Удаление чисел в JTextField

128
11 июня 2019, 09:50

Создаю калькулятор возникла проблема,вот я через кнопки ввожу числа в jTextField, хочу его уменьшить удаляя последние числа. вот код который написал

public void deletLastElem(String s){
        if(!(s.length()==0)) {
            s = s.substring(0, s.length() - 1);
        }

но он удаляет только один элемент, то есть если я ввел 123 и нажал кнопку то будет 12, а дальше при нажатии опять на кнопку остаётся 12. Как сделать так чтобы при повторном нажатии было 1. И что делать если я изменю число то есть, сначала я ввёл 123, удалил число стало 12 и я захотел дописать ещё число например 1243, то есть пр изменении числа оно по новой передавалась в метод.

Answer 1

У вас результат метода не используется один из возможных вариантов решения:

public String deleteLastElem(String s) {
    return s.length() > 0 ? s.substring(0, s.length() - 1) : s;
}
...
String s = "12345";
System.out.println(s);
s = deleteLastElem(s);
System.out.println(s);
s = deleteLastElem(s);
System.out.println(s);
s = deleteLastElem(s);
System.out.println(s);

или

public class Main {
    static class Calculator {
        private String text;
        Calculator(String text) {
            this.text = text;
        }
        public void deleteLastElem() {
            text = text.length() > 0 ? text.substring(0, text.length() - 1) : text;
        }
        @Override
        public String toString() {
            return "Calculator{" +
                   "text='" + text + '\'' +
                   '}';
        }
    }
    public static void main(String[] args) {
        Calculator calculator = new Calculator("1123");
        System.out.println(calculator);
        calculator.deleteLastElem();
        System.out.println(calculator);
        calculator.deleteLastElem();
        System.out.println(calculator);
    }
}

Интересная статья про передачу параметров в java https://javarush.ru/groups/posts/857-peredacha-parametrov-v-java

READ ALSO
Как в Play Framework 1 передать данные в сессию?

Как в Play Framework 1 передать данные в сессию?

Как в Play Framework 1 передать данные в сессию из контроллера, а вдругом контроллере их получить? Код контроллера:

126
IntelijIdea executable jar

IntelijIdea executable jar

Заметил такую вещь что при сборке в jar по умолчанию создаётся "…\src\main\java\META-INF\MANIFESTMF ", в котором прописаны необходимые для запуска параметры:

145
Java Spring Boot разработка объектной модели JSON [закрыт]

Java Spring Boot разработка объектной модели JSON [закрыт]

Мое приложение на Spring Boot принимает JSON с 4-кратной вложенностьюВ базе RethinkDB надо сохранить самую вложенную часть и несколко полей из внешней...

155
Как мне считать с клавиатуры BufferedReader

Как мне считать с клавиатуры BufferedReader

Нужно написать сколько rows / columns, их параметрыИ вывести матрицу Транспротованую

96