Ayuda agregar datos a un jtable con arraylist y metodos private en netbeans

Publicado en 'Programación' por kinguchiha17, 5 Abr 2013.





  1. kinguchiha17

    kinguchiha17 Miembro nuevo

    Registro:
    5 Abr 2013
    Mensajes:
    2
    Likes:
    0




    Hola gente, bno estoy empezando un curso de programacion y quisiera por favor si me pudieran ayudar con este pequeño problema, necesito saber como agregar datos a un jtable utilizando variables private en una clase y el arraylist. Ya declare todo en la clase incluyendo los set y get, pero mi problema radica al momento de agregar ya que no me funciona el codigo que tenia ya que creo que solo es para los public.
    Mis codigos en la clase estan asi:

    package logica;

    public class Personal {
    //Atributos
    private String codigo;
    private String nombre;
    private double sueldo;
    private boolean estable;
    public Object cargo;
    //Metodos
    //Constructores
    public Personal() {

    }
    public Personal( String codigo, String nombre, double sueldo, boolean estable) {
    this.codigo=codigo;
    this.nombre=nombre;
    this.sueldo= sueldo;
    this.estable=estable;
    }

    public String getCodigo() {
    return codigo;
    }

    public void setCodigo(String codigo) {
    this.codigo = codigo;
    }

    public String getNombre() {
    return nombre;
    }

    public void setNombre(String nombre) {
    this.nombre = nombre;
    }

    public double getSueldo() {
    return sueldo;
    }

    public void setSueldo(double sueldo) {
    this.sueldo = sueldo;
    }

    public boolean isEstable() {
    return estable;
    }

    public void setEstable(boolean estable) {
    this.estable = estable;
    }
    }

    y el bno el codigo q tengo me acepta porque estoy trabajando con private, no se que debo de cambiar :

    Personal p1=new Personal(txtcodigo.getText(),txtnombre.getText(),cbocargo.getSelectedItem().toString(),Double.parseDouble(txtsueldo.getText()),chkestable.isSelected());
    //agregando a la tabla
    Object [] fila={p1.codigo,p1.nombre,p1.cargo,p1.sueldo,p1.estable};
    lista.add( p1);
    listado();
    }
    void listado(){
    int tam;
    tam= lista.size();
    m1.setRowCount(0);
    for (int i = 0; i <=tam-1; i++) {
    Personal per= lista.get(i);
    Object [] fila={per.codigo, per.nombre, per.cargo,per.sueldo, per.estable };
    m1.addRow(fila);
    }



    Necesito ayuda urgentemente por favor, se los agradeceria mucho.
     
    Última edición: 5 Abr 2013


  2. tenguman

    tenguman Miembro de plata

    Registro:
    15 Nov 2010
    Mensajes:
    3,142
    Likes:
    1,016
    tu problema esta en la linea resaltada, los tipos de datos declarados con private solo se pueden usar en un objeto instaciado o algun objeto que herede atributos de la clase Personal, lo cual no funcionaria en el caso que estas indicando debido a que estas intentando llamar a por ejemplo p1.codigo en un objeto cualquiera, lo cual funcionaria correctamente si el codigo fuera de tipo de dato public. La forma correcta de ingresar los datos a la fila serian

     
    Última edición: 5 Abr 2013
    A PiRinPi le gustó este mensaje.
  3. kinguchiha17

    kinguchiha17 Miembro nuevo

    Registro:
    5 Abr 2013
    Mensajes:
    2
    Likes:
    0
    Gracias la verdad es que me sirve de mucho tu ayuda, pero ahora el problema esta en que no reconce estas partes :
    tbl1.setRowCount(0);
    tbl1.addRow(fila);

    A pesar de que todo lo demas esta bien esta parte es la q sale resaltada de rojo
     
  4. tenguman

    tenguman Miembro de plata

    Registro:
    15 Nov 2010
    Mensajes:
    3,142
    Likes:
    1,016
    :S sere adivino para saber tu codigo sin que me lo muestres? que tipo de objeto es tbl1??
     
  5. shifted

    shifted Miembro maestro

    Registro:
    23 Jun 2011
    Mensajes:
    605
    Likes:
    127
    sube todo tu proyecto a ver si puedo hacer algo :D
     
  6. Stuk_4

    Stuk_4 Miembro nuevo

    Registro:
    20 May 2013
    Mensajes:
    6
    Likes:
    1
    Usa el AbstractTableModel es mucho mas sencillo