Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Sumar Columnas

Estas en el tema de Sumar Columnas en el foro de Java en Foros del Web. Hola, quisiera recibir ayuda en netbeans, tengo dos tablas: TablaExamen en esta selecciono un examen con su respectivo costo TablaFinal voy agregando los exámenes seleccionados ...
  #1 (permalink)  
Antiguo 14/05/2013, 12:11
Avatar de Dsep  
Fecha de Ingreso: diciembre-2012
Mensajes: 8
Antigüedad: 11 años, 4 meses
Puntos: 0
Sumar Columnas

Hola, quisiera recibir ayuda en netbeans, tengo dos tablas:
  • TablaExamen en esta selecciono un examen con su respectivo costo
  • TablaFinal voy agregando los exámenes seleccionados de la tabla anterior
La los dos tablas tienen las mismas columnas Descripción y valor

esto es mi código pero no me suma
Código PHP:
DefaultTableModel modelo = new DefaultTableModel();
       
modelo.getDataVector();
       
int total=0;
       for (
int fila=0fila modelo.getRowCount(); fila++) {
   
total total + (Integer)modelo.getValueAt(fila1); // la columna 1 es la de costo.
}

campoTotal.setText(String.valueOf(total)); 
cuando sumo me muestra el en jtextfield un cero, alguien podria orientarme porfavor, Gracias

pd: todo este codigo lo tengo en un boton
  #2 (permalink)  
Antiguo 14/05/2013, 14:13
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Sumar Columnas

Básicamente no funciona por que el modelo lo estas recién instanciando es normal que no tenga nada.

Te dejo un ejemplo completamente funcional:
Código Java:
Ver original
  1. import java.awt.Dimension;
  2. import java.awt.GridLayout;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import javax.swing.JButton;
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8. import javax.swing.JScrollPane;
  9. import javax.swing.JTable;
  10. import javax.swing.event.TableModelEvent;
  11. import javax.swing.event.TableModelListener;
  12. import javax.swing.table.DefaultTableModel;
  13. import javax.swing.table.TableModel;
  14.  
  15. public class Utils extends JPanel implements TableModelListener {
  16.  
  17.     private static final long serialVersionUID = 1L;
  18.     private boolean DEBUG = false;
  19.     private JTable table;
  20.     private JButton okButton;
  21.     private String[] columnNames = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"};
  22.     private Object[][] data = {{"Kathy", "Smith", "Snowboarding", new Integer(5), (false)},
  23.         {"John", "Doe", "Rowing", new Integer(3), (true)},
  24.         {"Sue", "Black", "Knitting", new Integer(2), (false)},
  25.         {"Jane", "White", "Speed reading", new Integer(20), (true)},
  26.         {"Joe", "Brown", "Pool", new Integer(10), (false)}};
  27.     private TableModel model = new DefaultTableModel(data, columnNames) {
  28.  
  29.         private static final long serialVersionUID = 1L;
  30.  
  31.         @Override
  32.         public Class<?> getColumnClass(int column) {
  33.             return getValueAt(0, column).getClass();
  34.         }
  35.     };
  36.  
  37.     private JButton getOkButton() {
  38.         okButton = new JButton("OK");
  39.         okButton.addActionListener(new ActionListener() {
  40.  
  41.             @Override
  42.             public void actionPerformed(ActionEvent ae) {
  43.                 TableModel model = table.getModel();
  44.                 int total = 0;
  45.                 for (int row = 0; row < model.getRowCount(); row++) {
  46.                     total = total + (Integer)model.getValueAt(row, 3);
  47.                 }
  48.                 System.out.print(total + "\n");
  49.             }
  50.         });
  51.         return okButton;
  52.     }
  53.  
  54.     public Utils() {
  55.         super(new GridLayout(1, 0));
  56.         model.addTableModelListener(this);
  57.         table = new JTable(model);
  58.         table.setPreferredScrollableViewportSize(new Dimension(500, 70));
  59.         table.setFillsViewportHeight(true);
  60.         JScrollPane scrollPane = new JScrollPane(table);
  61.         add(scrollPane);
  62.         add(getOkButton());
  63.     }
  64.  
  65.     public void tableChanged(TableModelEvent e) {
  66.         int row = e.getFirstRow();
  67.         int column = e.getColumn();
  68.         model = (TableModel) e.getSource();
  69.         String columnName = model.getColumnName(column);
  70.         Object datas = model.getValueAt(row, column);
  71.         System.out.println("Column ---> " + columnName + ", new value is " + datas);
  72.     }
  73.  
  74.     private static void createAndShowGUI() {
  75.         JFrame frame = new JFrame("Utils");
  76.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  77.         Utils newContentPane = new Utils();
  78.         newContentPane.setOpaque(true); // content panes must be opaque
  79.         frame.setContentPane(newContentPane);
  80.         frame.pack();
  81.         frame.setVisible(true);
  82.     }
  83.  
  84.     public static void main(String[] args) {
  85.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  86.  
  87.             public void run() {
  88.                 createAndShowGUI();
  89.             }
  90.         });
  91.     }
  92. }
  #3 (permalink)  
Antiguo 15/05/2013, 03:20
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Sumar Columnas

Habría que ver la clase DefaultTableModel.

Tienes implementación en su constructor por defecto? Sino, es lo que te dice razpeitia.

Saludos
  #4 (permalink)  
Antiguo 15/05/2013, 08:13
Avatar de Dsep  
Fecha de Ingreso: diciembre-2012
Mensajes: 8
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Sumar Columnas

Hola a todos ya lo pude solucionar, gracias por su tiempo, acá dejo el código con el cual pude sumar las columnas, ojala sea de ayuda para alguien mas.
Código PHP:
 public void TotalTabla(){
String a="" 
int total=0
int b=0

for(
int fila =0;fila<TablaFinal.getRowCount();fila++){ 

a=String.valueOf(TablaFinal.getValueAt(fila1)); 
bInteger.valueOf(a); 
total=total+b

campoTotal.setText(String.valueOf(total));
    } 
Saludos

Etiquetas: columnas, netbeans
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:48.