Как создать Java-переменную с автоинкрементом - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время я создаю фиктивную систему управления больницей. Я успешно смог записать входные данные регистрации пользователя, такие как имя, пол и т. Д. Из jTextFields, в текстовый файл, но я борюсь с идеей создания автоматически увеличивающегося уникального идентификатора, который меняется с каждой новой строкой текстового файла. У меня есть выделенное для него jTextField, но мне не удалось увеличить переменную int на 1 при каждом нажатии кнопки «Добавить запись».

Я объявил "reg" как целое число, равное 1

int reg = 1; 

Поскольку мне нужно отправить число в текстовый файл, я преобразую его в строку и задаю для этой строки значение не редактируемого текстового поля перед тем, как записать его в текстовый файл

 String regString = Integer.toString(reg);
        regnumber.setText(regString);

К сожалению, reg продолжает отображаться как 2, когда записывается в файл. Как и в какой момент я использую оператор ++ для увеличения числа регистров в поле tex каждый раз при загрузке кадра. Любая помощь будет высоко ценится

снимок экрана рассматриваемого графического интерфейса пользователя

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы не включили достаточно подробностей в свой Вопрос, чтобы точно знать, в чем проблема, но вот мое предположение.

Левая и правая сторона

  • Постфикс операторы ++ & --, означающие справа от переменной, вступают в силу после значения из переменной осуществляется доступ.
  • В левой части переменной они вступают в силу до доступа к значению.

См. демонстрацию в Учебниках Java от Oracle. Я предлагаю вам потратить время на изучение этих руководств, поскольку они охватывают все основы изучения Java.

// prints 5
System.out.println(i);
// prints 6
System.out.println(++i);
// prints 6
System.out.println(i++);
// prints 7
System.out.println(i);
0 голосов
/ 28 июня 2018

Считать значение из файла только один раз и инициализировать его как AtomicInteger . Используйте метод incrementAndGet() для увеличения и получения текущего значения на единицу.

    private static AtomicInteger at = new AtomicInteger(0);
    
    public int getNextCountValue() {
        return at.incrementAndGet();
    }

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...