[RESOLVIDO] Gerar parcelas com data e valor de cada parcela e mostrar dentro do jtable

aqui está o arquivo caso queira dar uma olhada.

arquivo exp do netbeans

O Diego ta me ajudando aqui mas se outra pessoa souber a resposta e puder dar uma força agradeço.

Tem muitos problemas, estão sinalizados com "// <<--"

import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
/**
*
@author Engenharia03
*/
public class ajustes extends javax.swing.JFrame {
 DefaultTableModel Jtabela;
 /**
 Creates new form ajustes
 */
 public ajustes() {
  initComponents(); // <<-- faltou chamar o método
  Jtabela = new DefaultTableModel(new String[] { // <<-- Aspas duplas fora do lugar
   "Número da Parcela", // <<-- Aspas duplas fora do lugar
   "Data de Vencimento",
   "Valor"
  }, 0);
  Jtabela.addTableModelListener(new TableModelListener() {
   public void tableChanged(TableModelEvent e) {
    // A coluna 2 é o índice da coluna do Valor, como ela é a única que altera o total as soma, o if filtra as solicitações para que não fique repetindo desnecessariamente
    if (e.getColumn() == 2) {
     double soma = 0;
     // modeloDaTabela.getRowCount() obtém a qtd de linhas no modelo
     for (int i = 0; i < Jtabela.getRowCount(); i++) {
      // obtém o valor na linha i coluna 2 onde está o valor, o tableModel usa Objects, é mais fácil converter para String inicialmente
      String valor = Jtabela.getValueAt(i, 2).toString();
      // Double.parseDouble converte para double
      soma = soma + Double.parseDouble(valor);
     }
     jTtotal.setText("" + soma);
    }
   }
  });
  jTabela.setModel(Jtabela); // <<-- faltou trocar o model
 }
 public void adicionarParcela(int numero, String data, double valor) {
  Object[] row = new Object[3];
  row[0] = numero; // coluna numero da parcela
  row[1] = data; // coluna data de vencimento
  row[2] = valor; // valor da parcela
  Jtabela.addRow(row); // adiciona a tabela, método exclusivo do DefaultTableModel, caso não seja, troque por um equivalente
 }
 public void limparModeloDaTabela() {
   while (Jtabela.getRowCount() > 0) { // enquanto tiver linhas
    Jtabela.removeRow(0); // remove o primeiro
   }
  } // <<-- Faltou fechar aqui
  /**
   * This method is called from within the constructor to initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is always
   * regenerated by the Form Editor.
   */
 @SuppressWarnings("unchecked")
  // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
 private void initComponents() {

   jScrollPane1 = new javax.swing.JScrollPane();
   jTabela = new javax.swing.JTable();
   jTtotal = new javax.swing.JTextField();

   setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

   jTabela.setModel(new javax.swing.table.DefaultTableModel(
    new Object[][] {
     {}, {}, {}, {}
    },
    new String[] {

    }
   ));
   jScrollPane1.setViewportView(jTabela);

   javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
   getContentPane().setLayout(layout);
   layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
     .addGap(135, 135, 135)
     .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
      .addComponent(jTtotal, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
     .addContainerGap(159, Short.MAX_VALUE))
   );
   layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
     .addGap(49, 49, 49)
     .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
     .addComponent(jTtotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
     .addContainerGap(269, Short.MAX_VALUE))
   );

   pack();
  } // </editor-fold>                        

 /**
  * @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(ajustes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  } catch (InstantiationException ex) {
   java.util.logging.Logger.getLogger(ajustes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  } catch (IllegalAccessException ex) {
   java.util.logging.Logger.getLogger(ajustes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  } catch (javax.swing.UnsupportedLookAndFeelException ex) {
   java.util.logging.Logger.getLogger(ajustes.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 ajustes().setVisible(true);


   }
  });
 }

 // Variables declaration - do not modify                     
 private javax.swing.JScrollPane jScrollPane1;
 private javax.swing.JTable jTabela;
 private javax.swing.JTextField jTtotal;
 // End of variables declaration                   

 private void adicionarRow(String entrega, int i, int entrada, String entrada0) {
  throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
 }
}
1 curtida

Esse aqui que você postou como modelo faz exatamente o que quero o problema é que ele cria o jpainel a jtable e o textfiel e eu já tenho isso na janela que eu preciso usar. se eu usar ele ele vai abrir outro painel e eu não estou conseguindo direcionar o modelo para os meus ja criados. mas vou bater cabeça esse final de semana pra tentar adaptar ele no meu, agradeço toda ajuda Diego.

É só alterar onde eu marquei. “// <<–”

Funcionou ai com vc?

A janela abriu e os componentes apareceram, não foi possível gerar as parcelas pois falta muito código.

mesmo com a alteração aqui da erro na classe initcomponets e pede pra torna-la public mas na aceita editar nada na classe.

pera agora rodou deixa eu ver se arrumo o código.

Tá dando erro na hora de adicionar as linhas.

Blockquote
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;

public class ajustes extends javax.swing.JFrame {
DefaultTableModel Jtabela;

public ajustes() {
    
    initComponents();
    Jtabela = new DefaultTableModel(new String[]{"Nome", "Numero", "Valor", "Data"}, 0);
    Jtabela.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
    if (e.getColumn() == 2) {
        double soma = 0;
        for (int i = 0; i < Jtabela.getRowCount(); i++) {
            // obtém o valor na linha i coluna 2 onde está o valor, o tableModel usa Objects, é mais fácil converter para String inicialmente
            String valor = Jtabela.getValueAt(i, 2).toString();
            // Double.parseDouble converte para double
            soma = soma + Double.parseDouble(valor); 
        }
        jTtotal.setText(""+soma);
    }
}

});

    MinhaTabela.setModel(Jtabela);
   
            adicionarRow("Entrega", 0, 80, "Entrada");
            adicionarRow("Entrega", 1, 80, "14/01/2018");
            adicionarRow("Entrega", 2, 80, "14/02/2018");
            adicionarRow("Entrega", 3, 80, "14/03/2018");
            adicionarRow("Entrega", 4, 80, "14/04/2018");
        }


public void adicionarRow(String nome, int numero, double valor, String data) {
Object[] row = new Object[4];
row[0] = nome;
row[1] = numero;
row[2] = valor;
row[3] = data;
Jtabela.addRow(row);

}

     public void limparModeloDaTabela() {

while (Jtabela.getRowCount() > 0) { // enquanto tiver linhas
Jtabela.removeRow(0); // remove o primeiro
}
}

Blockquote

esse erro >
Exception in thread “AWT-EventQueue-0” java.lang.UnsupportedOperationException: Not supported yet.
at testword.ajustes.adicionarRow(ajustes.java:159)
at testword.ajustes.(ajustes.java:41)
at testword.ajustes$2.run(ajustes.java:144)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

O que tem na linha 159?

1 curtida

private void adicionarRow(String entrega, int i, int entrada, String entrada0) {
linha 159 >>> throw new UnsupportedOperationException(“Not supported yet.”); //To change body of generated methods, choose Tools | Templates.
}

como sou jumento era isso apenas, funcionou beleza agora.
Muito obrigado pela força Diego agora que rodou na minha janela consigo adaptar pro que preciso.