Variável não recebe vários valores

Sou novo no mundo Java e estou com dificuldades na parte de armazenamento dos valores.

Tenho uma interface com quatro botões com valores distintos. Também, existem mais dois botões para cálculos de valores à vista e à prazo.

Consigo escolher um valor e multiplicar pela quantidade normalmente. Porém quando tento fazer com vários valores o calculo sai errado.

Valor1 = 29.90
Valor2 = 25.50
Valor3 = 15.99
Valor4 = 99.90
package lojaroupas;

import javax.swing.JOptionPane;

public class Roupas extends javax.swing.JFrame {
    double produtos;
    int quantidade;
    double total;
    double prodtotal;

    public Roupas() {
        initComponents();
    }

    private void jBtnvalor4ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        produtos = Double.parseDouble(jBtnvalor4.getText());
        quantidade = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade: "));
        prodtotal = produtos * quantidade;
    }

    private void jBtnvalor3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        produtos = Double.parseDouble(jBtnvalor3.getText());
        quantidade = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade: "));
        prodtotal = produtos * quantidade;
    }

    private void jBtnvalor2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        produtos = Double.parseDouble(jBtnvalor2.getText());
        quantidade = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade: "));
        prodtotal = produtos * quantidade;
    }

    private void JBtnvalor1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        produtos = Double.parseDouble(JBtnvalor1.getText());
        quantidade = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade: "));
        prodtotal = produtos * quantidade;
    }

    private void jBtnpgprazoActionPerformed(java.awt.event.ActionEvent evt) {                                            
        total = prodtotal * 1.1;
        JOptionPane.showMessageDialog(null,"Total á prazo é:R$ " + total);
    }

    private void jBtnpgvistaActionPerformed(java.awt.event.ActionEvent evt) {                                            
        total = prodtotal * 0.95;
        JOptionPane.showMessageDialog(null,"Total á prazo é:R$ " + total);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Roupas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Roupas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Roupas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Roupas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Roupas().setVisible(true);
            }
        });
    }