Как добавить значение типа double в строку JTable? - PullRequest
0 голосов
/ 11 сентября 2018
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)     
{                                         
    try {

        Connection c = DBconnection.conn();
        PreparedStatement ps = c.prepareStatement("SELECT * from menu where items=?");
        ps.setString(1, (String) jComboBox2.getSelectedItem());
        ResultSet rs = ps.executeQuery();           
        DefaultTableModel tbn = (DefaultTableModel) jTable1.getModel();

        Vector v = new Vector<>();
        v.add(jComboBox2.getSelectedItem());
       v.add(qty.getText());

После этой строки мне нужно добавить цену типа double, я выбираю ее из базы данных. И мне нужно знать, как это сделать. Пожалуйста, кто-нибудь поможет

        tbn.addRow(v);

Здесь я вычисляю сумму.
двойная сумма = 0;

        for(int i=0; i<jTable1.getRowCount(); i++)
        {
            double amount = Double.parseDouble(String.valueOf(jTable1.getValueAt(i, 2)));
            jTable1.getValueAt(i,1));
            total+=amount;
        }
        Ltot.setText(String.valueOf(total));
    } catch (Exception ex) {
        Logger.getLogger(pos.class.getName()).log(Level.SEVERE, null, ex);
    }


}                         *emphasized text*

1 Ответ

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

Автобокс должен позволить вам легко добавить двойное число:

v.add(price);

double - это тип примитива , и вы не можете добавить их к Vector s, но Java имеет тип объекта, соответствующий каждому примитиву, и поэтому он преобразует price в экземпляр Double на месте, и добавляет этот экземпляр к вашему Vector.

Быстрый sidenote: это означает, среди прочего, что вы заплатите небольшую цену в куче пространства из-за нового объекта, который вы создали, так что будьте немного внимательны, если вы делаете это много.

Также: DefaultTableModel - это очень без излишеств с ходом TableModel. Но это может быть очень легко создавать прототипы. Когда у вас есть свободное время, и если вам нужно улучшить этот код, я призываю вас искать реализации TableModel, которые вы найдете более подходящими различными способами, такими как позволяя вам извлекать значения из существующей структуры данных, а не помещать их в совершенно новые Vector s. Хорошим следующим шагом, например, является написание собственной реализации TableModel для этой конкретной таблицы.

...