Главная страница
Навигация по странице:

  • "События

  • jButtonNewPersActionPerformed

  • jButtonDelPersActionPerformed

  • События

  • Самостоятельная работа Java 30. Методические указания студентам по выполнению самостоятельнойкурсовой работы


    Скачать 153.8 Kb.
    НазваниеМетодические указания студентам по выполнению самостоятельнойкурсовой работы
    Дата24.01.2022
    Размер153.8 Kb.
    Формат файлаdocx
    Имя файлаСамостоятельная работа Java 30.docx
    ТипМетодические указания
    #340005
    страница5 из 9
    1   2   3   4   5   6   7   8   9

    Методы для работы со списком работников


    Теперь запрограммируем реакцию на нажатие кнопок, связанных с созданием/удалением объектов в списке. Для того чтобы привязать к кнопке реакцию на ее нажатие нужно просто сделать на ней двойной щелчок (в окне "Проекты"). Будет сгенерирован метод класса jButtonNewPersActionPerformed (для кнопки jButtonNewPers). Кроме этого в защищенной области в приватном методе initComponents появится код, связывающий сгенерированный метод и саму кнопку. Также имя этого метода появится в окне свойств кнопки на закладке "События" (событие ActionPerformed).
    private void jButtonNewPersActionPerformed(java.awt.event.ActionEvent evt) {

    }

    Работает это так, когда пользователь нажмет кнопку, кнопка создаст объект класса ActionEvent и вызовет jButtonNewPersActionPerformed (event). 

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

    private void jButtonNewPersActionPerformed(java.awt.event.ActionEvent evt) {

    setPerson();

    personList.add(new Class2());

    currentInd = personList.size()-1;

    getPerson();

    jTextFieldCount.setText(""+(currentInd+1));

    jSpinnerCrn.setValue(currentInd);

    }

    Здесь выполняется следующее:

    • Выполняется метод setPerson(), чтобы записать в поля текущего объекта списка данные из текстовых полей формы.

    • В список personList добавляется вновь созданный экземпляр класса Class2

    • Присвоим значение переменной currentInd, которая хранит номер текущего объекта, значение делаем равным номеру последнего объекта списка.

    • Копируем поля из созданного объекта на форму. Текстовые поля будут очищены, а в численных будет записан 0.

    • Выводим количество объектов списке

    • В счетчике jSpinnerCrn показываем номер текущего объекта в списке.

    Аналогично создаем обработчик для кнопки jButtonDelPers

    private void jButtonDelPersActionPerformed(java.awt.event.ActionEvent evt) {

    personList.remove(currentInd);

    currentInd = personList.size()-1;

    if (currentInd == personList.size()) {

    currentInd--;

    jSpinnerCrn.setValue(currentInd);

    } else {

    getPerson();

    }

    jTextFieldCount.setText("" + personList.size());

    }

    Процедура по разному ведет себя если удаляется не последний и последний элемент списка.

    Для управления списком нужно также запрограммировать реакцию на изменение в счетчике JSpinnerCrn, счетчик указывает номер текущего элемента в списке. Нужно в окне свойств кнопки на закладке "События" щелкнуть на событие StateChanged. В сгенерированный шаблон добавляем свой код.

    private void jSpinnerCrnStateChanged(javax.swing.event.ChangeEvent evt) {

    setPerson();

    currentInd = (int) jSpinnerCrn.getValue();

    if (currentInd >= personList.size()) {

    currentInd = personList.size()-1;

    jSpinnerCrn.setValue(currentInd);

    } else if (currentInd < 0) {

    currentInd = 0;

    jSpinnerCrn.setValue(currentInd);

    }

    getPerson();

    }

    Код работает следующим образом:

    • Выполняется метод setPerson(), чтобы записать в поля текущего объекта списка данные из текстовых полей формы.

    • Присвоим новое значение переменной currentInd, которая хранит номер текущего объекта, значение. Значение берется из компонента jSpinnerCrn

    • Проверяем значение переменной currentInd на ее допустимость:

      • номер текущего объекта не может быть больше или равен количеству элементов в списке

      • номер текущего объекта не может быть меньше нуля

    • Выполняется метод getPerson(), чтобы скопировать данных из текущего объекта списка в поля формы.

    Все механизмы по работе со списком экземпляров класса Class2 теперь готовы, осталось реализовать код, при помощи которого мы покажем выполнение методов этих экземпляров.
    1   2   3   4   5   6   7   8   9


    написать администратору сайта