получать сумму jtable значений непрерывно - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу непрерывно получать сумму всех значений из jtable.Как я сделал jtable, где пользователь будет непрерывно помещать данные, и всякий раз, когда в jtable будет вставляться новая строка, должен выполняться какой-то код для получения всей суммы значений jtable, а затем задание его в текстовом поле.Я написал код, но не знаю, в каком случае я должен использовать код, чтобы при вставке новой строки в таблицу код выполнялся, получал новую сумму всех значений и сохранял ее в текстовом поле.Так что теперь, в каком методе jtable я должен использовать этот код, чтобы при вставке новой строки выполнялся код.Код здесь ...

    int rows=productionTable.getRowCount();
    int totalBundles=0;
    int totalBoxes=0;

    //totalBundles
    for(int i=0;i<rows;i++)
    {
        totalBundles=totalBundles+Integer.parseInt(productionTable.getValueAt(i, 1)+"");

    }
    this.totalBundlesTextField.setText(totalBundles+"");
    //

    //totalBoxes
    for(int i=0;i<rows;i++)
    {
        totalBoxes=totalBoxes+Integer.parseInt(productionTable.getValueAt(i, 2)+"");

    }
    this.totalBoxesTextField.setText(totalBoxes+"");
    //

1 Ответ

0 голосов
/ 12 сентября 2018

Итак, в каком методе jtable я должен использовать этот код, чтобы при вставке новой строки выполнить код

Вы делаете это при изменении данных в TableModel,Таким образом, вы можете добавить TableModelListener к TableModel вашего стола.Тогда TableModelEvent будет сгенерировано, когда вы:

  1. добавите строки данных
  2. удалите строки данных
  3. измените значение существующих данных

В каждом из вышеперечисленных случаев вы можете выполнить итерацию по TableModel для вычисления нового значения.

В простом примере использования JTable -> TableModeListener a TableModelListener.

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

Если у вас естьмного данных, это не очень эффективно, поэтому вы можете захотеть сохранить промежуточное значение в вашей TableModel.Таким образом, вам нужно настроить TableModel, чтобы сохранить итог.А затем в таких методах, как setValueAt (...), insertRow (...), removeRow (...), вам необходимо добавить логику для обновления итогов по мере обновления модели.

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