Как разделить двойники на отдельные собранные ценности - PullRequest
0 голосов
/ 02 декабря 2011

Я создаю клиент-серверное приложение, и мне нужна ваша помощь по следующей проблеме.

У меня есть JTable, как вы видите на изображении ниже:

enter image description here

и я хочу получить бутылку для каждого клиента, bottle=("Flacon") должно иметь:

  • Максимум 9,9 мл в каждой бутылке.

  • Максимум 5 доз в каждой бутылке.

Вот код, который я пробовал:

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

    NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
    int dose=0;
    Double summl =0.0;
    String Name="";
    Vector  vf = null;
    Vector<Vector> data = new Vector<Vector>();

    for(int i=0; i <jTable1.getRowCount(); i++)
    {

        try {
                if(jTable1.getValueAt(i, 1).toString().equals(jTable1.getValueAt(i+1, 1).toString()))
                {

                    dose++;
                    summl=summl+(Double)nf.parse(jTable1.getValueAt(i,5).toString());
                    Name=jTable1.getValueAt(i, 1).toString();

                }else
                {
                    vf=new Vector();   
                    vf.add(countflac);
                    vf.add(Name);
                    vf.add(summl);
                    data.add(vf);
                    countflac++;
                }

        } catch (ParseException ex) {
            ex.printStackTrace();
        }

    }


    jTable3.setModel(new DefaultTableModel( data,vflac));
    System.out.println("Sum of ml's ="+summl);
    System.out.println("dose ="+dose);

}

и выдает следующую ошибку:

Исключение в потоке "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: недопустимый индекс

1 Ответ

1 голос
/ 02 декабря 2011
getValueAt(i+1, 1)

В последней строке происходит ошибка, поскольку i + 1 должно быть меньше, чем getRowCount ().

...