🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.lenguajes.java
2 messages
2 total messages Started by iktor Wed, 27 Jun 2007 16:49
Sugerencia en Codigo
#507
Author: iktor
Date: Wed, 27 Jun 2007 16:49
106 lines
4424 bytes
Holas al Foro,
Tengo un problemita con este codigo, quiero mostrar datos almacenados
en un arreglo a un JTable, pero no aparece nada. Que estoy omitiendo,
Resulta que estoy trabajando en netBeans y cuando diseño l JTable con
el editor GUI le adiciono el codigo y si funciona, pero esta vez
decidi hacerlo a punta de codigo y me sale vacio, ni las cabeceras
aparecen. Gracias por su tiempo.


package Presentacion;

/**
 *
 * @author Administrator
 */
import javax.swing.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import Datos.BaseDatos;

public class frmReporteOrdenesCompras extends JFrame{

    DefaultTableModel Reg;
    private JTable tblOrdenesCompra;
    private JButton btnSalir;

    public frmReporteOrdenesCompras() {
        this.inicializarcomp();
    }

    public void inicializarcomp()
    {
        this.tblOrdenesCompra = new JTable();
        this.tblOrdenesCompra.setBounds(10, 30, 550, 150);
        this.btnSalir = new JButton("Salir");
        this.btnSalir.setBounds(470, 200, 90, 30);

        this.setName("REPORTE DE ORDENES DE COMPRA");
        this.setTitle("REPORTE DE ORDENES DE COMPRA");
        this.setLayout(null);
        this.add(this.tblOrdenesCompra);
        this.add(this.btnSalir);
        this.setSize(600, 300);
        this.setVisible(true);
        this.setLocation(100, 100);
    }

    private void InsertarLinea()
    {
        Vector Linea = new Vector();
        try
        {
            if (Reg==null)
            {
                Reg = new DefaultTableModel();
                Reg.addColumn("IDOC");
                Reg.addColumn("Fecha");
                Reg.addColumn("Valor Total");

                for (int i=0; i<BaseDatos.ordenCompra.length; i++)
                {
                    if (BaseDatos.ordenCompra[i]!=null)
                    {
                        Linea.add(1);
                        Linea.add(BaseDatos.ordenCompra[i].getIdOC());
 
Linea.add(BaseDatos.ordenCompra[i].getFechaOC());
 
Linea.add(BaseDatos.ordenCompra[i].getTotalOC());
                        i = BaseDatos.ordenCompra.length;
                    }
                    else if(BaseDatos.ordenCompra[i]==null)
                    {
                        break;
                    }
                }
            }
            else
            {
                for (int i=0; i<BaseDatos.ordenCompra.length; i++)
                {
                    if (BaseDatos.ordenCompra[i]!=null)
                    {
                        Linea.add(1);
                        Linea.add(BaseDatos.ordenCompra[i].getIdOC());
 
Linea.add(BaseDatos.ordenCompra[i].getFechaOC());
 
Linea.add(BaseDatos.ordenCompra[i].getTotalOC());
                        i = BaseDatos.ordenCompra.length;
                    }
                    else if(BaseDatos.ordenCompra[i]==null)
                    {
                        break;
                    }
                }
            }
            Reg.addRow(Linea);
            this.tblOrdenesCompra.setModel(Reg);
            }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }
    }
}
Re: Sugerencia en Codigo
#508
Author: Ricardo Palomares Martinez
Date: Wed, 27 Jun 2007 17:27
90 lines
3465 bytes
iktor escribió:
> Holas al Foro,
> Tengo un problemita con este codigo, quiero mostrar datos almacenados
> en un arreglo a un JTable, pero no aparece nada. Que estoy omitiendo,
> Resulta que estoy trabajando en netBeans y cuando diseño l JTable con
> el editor GUI le adiciono el codigo y si funciona, pero esta vez
> decidi hacerlo a punta de codigo y me sale vacio, ni las cabeceras
> aparecen. Gracias por su tiempo.


Bueno, lo más sencillo sería que lo hicieras con el diseñador GUI de
NetBeans y compararas el código. Verías más fácilmente qué diferencia hay.


> public class frmReporteOrdenesCompras extends JFrame{


El otro día leí en los grupos en inglés que está mal visto lo de
llamar a una variable "frmNombreQueSea". Lo de comenzar el
identificador con "frm" te delata como proveniente de Visual Basic. :-)


> 
>     DefaultTableModel Reg;


Por convenciones de estilo, los identificadores de propiedades y
métodos deberían comenzar siempre en minúsculas:

DefaultTableModel reg;


>     public void inicializarcomp()
>     {
>         this.tblOrdenesCompra = new JTable();
>         this.tblOrdenesCompra.setBounds(10, 30, 550, 150);

Aquí te falta lo que has puesto en InsertarLinea():

>             this.tblOrdenesCompra.setModel(Reg);

Si no añades el modelo de datos al JTable durante la inicialización
del JFrame, probablemente no te va a funcionar como esperas.


> 
>     private void InsertarLinea()


Mejor así:

private void insertarLinea()

;-)


>  for (int i=0; i<BaseDatos.ordenCompra.length; i++)
>  {
>      if (BaseDatos.ordenCompra[i]!=null)
>      {
>          Linea.add(1);
>          Linea.add(BaseDatos.ordenCompra[i].getIdOC());
>          Linea.add(BaseDatos.ordenCompra[i].getFechaOC());
>          Linea.add(BaseDatos.ordenCompra[i].getTotalOC());
>          i = BaseDatos.ordenCompra.length;
>      }
>      else if(BaseDatos.ordenCompra[i]==null)


Esta condición es redundante, ¿no? Si el flujo de ejecución no ha
entrado en la parte del if, es que necesariamente va a ser null, así
que ¿para qué comprobarlo?


>             }
>             else
>             {


Además, si creas e inicializas el modelo de datos en su sitio, no
necesitarás este bloque if...else que es prácticamente redundante.

Saludos.

-- 
If it's true that we are here to help others,
then what exactly are the OTHERS here for?
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads