Como agregar datos y mostrarlos en un JList [Java]

Buenas tardes a todos, en esta entrada dejare un poco lo que es OpenGL y hare un post sencillo para Java. Lo que haremos es trabajar con un JList, guardaremos nuestros propios objetos en el y desplegaremos la informacion que contienen en diferentes labels, es algo sencillo pero muy util. No trabajare con bases de datos pero de igual manera se haria.
Para comenzar crearemos un nuevo proyecto en NetBeans sin mainclass


Y despues de esto crearemos un packete con nombre cual quiera y crearemos un JFrame, y lo diseñaremos de la siguiente manera

Para comenzar con todo esto, despues de que ya tengamos nuestro diseño anterior, lo que haremos es crear una clase que se llame Usuario, esta clase tendra las propiedades que despliega el form anterior. Primero haremos esto:

Creamos la clase y declaramos esas variables ( por cierto falto el ID, lo agregan como int), despues damos clic derecho ( este es un buen tip jaja), y en insertar codigo damos clic y aparecera esta lista desplegable, y tenemos varias opciones para que netbeans nos agregue codigo, primero le vamos a poner que nos agregue un constructor y seleccionamos todas las propiedades, despues damos clic en getter and setter y seleccionamos todas las propiedades


Como lo hicimos en el post de como llena un JComboBox, tenemos que sobreescribir un metodo llamado toString, para que nos muestre lo que nosotros desiemos al momento de agregar un objeto al JList
La clase quedara de la siguiente manera:


public class Usuario {

    private String nombre, apellido, direccion, telefono, email;
    private int id;

    public Usuario(String nombre, String apellido, String direccion, String telefono, String email) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.direccion = direccion;
        this.telefono = telefono;
        this.email = email;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNombre() {
        return nombre;
    }

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

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
    @Override
    public String toString() {
        return nombre+" "+apellido;
    }
}

Ahora tendremos que crear un modelo para nuestra lista, para eso tenemos uno por default llamado DefaultListModel, declaramos y creamos un objeto de tipo DefaultListModel en la clase de nuestro frame:

    /** Creates new form MainWindow */
    DefaultListModel modeloLista = new DefaultListModel();
    public MainWindow() {
        initComponents();
        jList1.setModel(modeloLista);
    }

Creamos el modelo y se lo asignamos a nuestra lista. Ahora viene lo mas sencillo del mundo!, en el boton que agregamos en el form damos doble clic y en el evento simplemente agarramos los datos y creamos un objeto de la clase usuario dandole los parametros en el constructor (importante y para buena practica de programacion, no dejemos los nombres por default, a cada textfield le cambiamos el nombre como ud deseen para poder identificarlo, por ejemplo txfNombre,txfApellido,texfDireccion etc), despues de crear nuestro objeto, lo agregamos a nuestra lista:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        String nombre, apellido, direccion, telefono, email;
        int id;
        nombre = txfNom.getText();
        apellido = txfApe.getText();
        direccion = txfDir.getText();
        telefono = txfTel.getText();
        email = txfMail.getText();
        id = Integer.parseInt(txfId.getText());

        Usuario objUsuario = new Usuario(id, nombre, apellido, direccion, telefono, email);
       modeloLista.addElement(objUsuario);
    }

Y asi se iran almacenando los objetos usuario a nuestra lista,

Ahora solo falta desplegar la informacion al seleccionar un elemento en la lista, para eso haremos uso del evento del jList llamado valueChanged y escribiremos lo siguiente

    private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
        // TODO add your handling code here:
     int index= jList1.getSelectedIndex();
     Usuario objUsuario=(Usuario)modeloLista.getElementAt(index);

     lblId.setText("ID: "+objUsuario.getId());
     lblNom.setText("Nombre: "+objUsuario.getNombre());
     lblApe.setText("Apellido: "+objUsuario.getApellido());
     lblDir.setText("Direccion: "+objUsuario.getDireccion());
     lblTel.setText("Telefono: "+objUsuario.getTelefono());
     lblMail.setText("Email: "+objUsuario.getEmail());

    }

Y al seleccionar cada elemento que este en la lista nos desplegara la informacion en los labels que habiamos agregado

Esto para mi ha sido util al momento de desarrollar diferentes aplicaciones en el tecnologico!, espero les sea de ayuda!

Code4Fun 😀

Autor: Isaac Ojeda

Computer Systems Engineer. Full stack DotNet developer. Expert in Web technologies, and lifelong learner in all existing technologies for software development.

84 opiniones en “Como agregar datos y mostrarlos en un JList [Java]”

  1. Hola, buenos días.
    Tengo una pregunta de principiante en java – MVC – swing – Jlist.
    De esas que no es fácil encontrar en google – y ahora mismo me cuesta un poco entender hasta lo que leo.

    ¿Es posible implementar un ListModel (public class Loquesea implements ListModel) cuyo «origen de datos» (por llamarlo de alguna manera) sea de tipo map? No tengo problemas si uso un Vector – pero al tratar de usar un Map me dice que no puede implementar el Map.
    Este es el esquema de lo que trato de hacer. Que igual es un disparate, igual no.

    public class dato_registro
    {

    sus propiedades y sus metodos, por supuesto incluyendo el new

    }

    public class Loquesea implements ListModel {
    private Map datadd;

    public Model_emailer() {
    datadd = new Map();
    }

    codigo que carga de la base de datos los objetos dato_registro y los añade al map
    e implementacion de la interfaz ListModel

    }

    Gracias por tu tiempo,
    Julieta Martínez

    1. Te soy sincero y esto es algo que nunca he hecho! pero crees que exista diferencia si usas hashmap (datadd=new HashMap())?, la verdad no creo por que HashMap implementa Map, pero si no lo has intentado pues habra que probar ya que no tengo alguna otra idea jeje!.
      Un saludo

  2. hey gracias ….!
    una pregunta a la hora de hacer

    int index= jList1.getSelectedIndex();
    Alumno alumno = (Alumno)modelList.getElementAt(index);

    me sale un error en la segunda linea :

    Exception in thread «AWT-EventQueue-0» java.lang.ClassCastException: java.lang.String cannot be cast to funtionallogic.Alumno
    at gui.AlumnosGui.jListActionPerformed(AlumnosGui.java:230)

    si alguien sabe como solucionar esto… ó quisiera saber si hay otra manera de acceder a una posición del modelList ??

    1. Hola Camilo!

      Leyendo la exception veo que el evento que hiciste del JList fue un AcitonPerformed, este funciona al darle clic? o cuando se selecciona un item diferente?, te recomiendo que uses el evento Value Changed. Otra cosa, tu clase se llama Alumno?, que es lo que guardas en los JComboBox, cadenas o objetos tipo Alumno?, la excepcion habla de un String, en ningun momento trabajamos con cadenas, si no con nuestro objeto en tu caso tipo Alumno, si seguiste todo el post?

      Saludos!

  3. hola que tal, se podria hacer lo mismo con un jtable? en donde se pueda ver una barra de titulo para ver que es cada columna?

    Y el paso posterior a este podria mandar la informacion del jtable a una table de mysql??

    Gracias!

  4. Hola Isaac, maginifica explicación! te cuento a ver si puedes resolverme una duda, estoy haciendo como un formulario en Java, primero he creado una base de datos en Mysql, despues en un jPanel he hecho el formulario y conectado con la base de datos, introduzco los datos y se me guardan en la BD(solo dos campos, ID y Detalles), El problema es que ahora los quiero mostrar en un Jlist por medio de una consulta a la BD. Te escribo el codigo que tengo, no me da errores pero hago algo mal..

    Muchas Gracias

  5. lisTag = new JList(modelo);
    try {

    Class.forName(«com.mysql.jdbc.Driver»);

    java.sql.Connection con =DriverManager.getConnection(«jdbc:mysql://localhost:3306/rfidtags», «root», «igvalmol»);

    Statement s = (Statement) con.createStatement();
    ResultSet rs = s.executeQuery («select * from contenido»);

    while(rs.next())
    {

    modelo.addElement(rs.getInt(2));

    }
    rs.close();
    }

    catch (Exception ex) {
    JOptionPane.showMessageDialog(rootPane, «Error: » + ex);
    }

    1. Dices que tienes 2 campos nomas???? getInt(2) la cuenta empieza desde 0 segun recuerdo, estoy seguro que le puedes proporcionar el nombre del campo como parametro, de ahi en mas no veo nada mal. Saludos

  6. ola me gustaria saber como puedo agregar ina lista a una jlist desde una base de datos…. ya tengo todo diseñado y conectado con la base solo me falta desplegar la informacion en una lista…. porfavor si m pueden ayudar escribir a trabajos.jr@gmail.com saludos gracias.

  7. Hola, desearia una ayuda con un codigo, tengo un jlist en un applet y deseo que los datos sean mostrados en otro applet que tiene otro jlist… cual seria la sentencia? gracias

  8. hola

    disculpa en que parte del codigo del frame deben de ir los siguientes codigos:

    /** Creates new form MainWindow */
    DefaultListModel modeloLista = new DefaultListModel();
    public MainWindow() {
    initComponents();
    jList1.setModel(modeloLista);
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    String nombre, apellido, direccion, telefono, email;
    int id;
    nombre = txfNom.getText();
    apellido = txfApe.getText();
    direccion = txfDir.getText();
    telefono = txfTel.getText();
    email = txfMail.getText();
    id = Integer.parseInt(txfId.getText());

    Usuario objUsuario = new Usuario(id, nombre, apellido, direccion, telefono, email);
    modeloLista.addElement(objUsuario);
    }

    private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
    // TODO add your handling code here:
    int index= jList1.getSelectedIndex();
    Usuario objUsuario=(Usuario)modeloLista.getElementAt(index);

    lblId.setText(«ID: «+objUsuario.getId());
    lblNom.setText(«Nombre: «+objUsuario.getNombre());
    lblApe.setText(«Apellido: «+objUsuario.getApellido());
    lblDir.setText(«Direccion: «+objUsuario.getDireccion());
    lblTel.setText(«Telefono: «+objUsuario.getTelefono());
    lblMail.setText(«Email: «+objUsuario.getEmail());

    }

    es que ami me marca errores

    en el public MainWindow() {
    las variables lblId. etc
    y en los txfNom

    podrias ayudarme porfavor yo solo llegue hasta la construccion de los Set y Get.

    saludos

    1. Para empezar, estas utilizando netbeans??, como creaste la interfaz gráfica ? el tutorial yo pienso que es claro… pero bueno!

      Los métodos jButton1ActionPerformed y jList1ValueChanged son eventos que se crean desde el diseñador, creaste los eventos? o copiaste tal cual el código?

      En la parte de arriba, debes de agregar un import javax.swing.*; para que puedas hacer uso de DefaultListModel, eso si es error mio puesto que no lo agregué en el tutorial.

      Saludos

      1. Tengo errores con esto:
        Perros objUsuarios = new Perros(id, nombre, apellido, direccion, telefono, email);
        modeloLista.addElement(objUsuarios);

        Alguna referencia… urgente!!

      2. Tengo errores con esto:
        Perros objUsuarios = new Usuarios(id, nombre, apellido, direccion, telefono, email);
        modeloLista.addElement(objUsuarios);

        Alguna referencia… urgente!!

  9. Hola Amigo como andas?
    Mi nombre es diego y tengo una consulta que hacerte…

    tengo que desarrollar un form donde se listen todos los profesionales activos del sistema.

    Estoy emepzando con Jigloo, pero no encuentro el componenete adecuado para realizar esto.

    Estoy probando con un jTable (no si es correcto el componente!). Lo que tengo que hacer ahora es listar dentro de el todos los profesionales…

    Me podrias dar una idea de como hacerlo y si esttoy utiizando el componente adecuado.

    Gracias desde ya.

    Diego

    1. Que tal Diego,

      Tu pregunta es fácil de responder, necesitas mostrar datos con diferentes campos? si es así es perfecto el JTable, si no es el caso podrías utilizar solo un JList o un JComboBox, pero supongo que es el JTable.

      Los datos vienen de una base de datos?, dime especificamente tus dudas para ayudarte mejor, el detalle esta en como llenar el JTable?, si es eso puedes utilizar una clase llamada DefaultTableModel y esta contiene metodos para agregar columnas y registros.

      Saludos Diego y gracias por pasarte por mi blog!

      1. Hola Isacc. Primero muchas gracias por preocuparte…..

        Mira te cuento lo que estoy haciendo….

        Estoy desarrollando un sistema para un centro ofatalmologico…

        La pregunta del jtable viene por lo siguiente…

        Mi idea era listar en un formulario principal, todos los profesionales del sistema.

        Y al darle un doble click al registro abrir otro form con los datos del mismo para modificarlos (este ultimo form lo tengo hecho ya).

        Nose la verdad si me conviene listar o mostrar como columnas todos los campos de la tabla profesional, ya que son bastantes y nose si se justifica hacerlo…

        Ya que estamos te comento tambien una duda en el jTable. Cuando ejecuto el form y le hago doble clikc a uno de los registros por defecto que contiene el mismo, me de la opcion de editar el campo donde le hice click. pero en realidad necesito que no haga eso y me habra en todo caso un form. (Esto es un comentario que te hago solamente de lo que he visto….)

        Los datos los tengo guardados en la BD…

        Espero tu respuesta…

      2. Que onda Diego,

        Mira ahora como lo planteas, si es mejor utilizar un JList porque tal vez solo es necesario mostrar el nombre completo de quien se desea editar y realizando doble clic (o seleccionando uno y luego a algun boton editar) y abrir un nuevo form es mas sencillo y si te recomiendo que lo hagas así.

        La verdad ese tipo de eventos en un JTable no se como funcione, creo existe la opción del JTable para que no puedas editar, pero generar un evento con doble clic en un registro no estoy muy seguro. Lo que si puedes hacer es agregar un campo extra al JTable, teóricamente la table recibe objects, o sea cualquier tipo de objeto, entonces tal vez podrías agregar algún botón que al darle clic en el puedas abrir el Form que deseas.

        Saludos Diego!, gracias por pasarte por el blog!

      3. Muchisimas graca Isaac. Me sirvio de mucho tus aclaraciones.

        Cuando tenga el codigo lo comparte para todos..

        Un abrazo grande…

        Diego

  10. oye amigo tengo una pregunta ya tengo todo el diseño pero me manda un error en la parte del ususario throw new UnsupportedOperationException(» «) pues me pide poner algo dentro de este que puedo agregar ai pues al ejecutar el codigo no ace lo que se ve en tu tutoriaal nadamas introdusco los datos y ai me quedo ya no ace mas el codigo porfas si me ayudas…

  11. Hola Isaac!

    He seguido toda la entrada de tu blog y me funciona todo bien salvo una cosa.

    Cuando añado el objeto usuario al modelo de la lista, en dicha lista no se me muestra el nombre del usuario, como parece que te pasa a ti por la imagen que has añadido, sino un identificador interno del objeto usuario (algo como «bbdd.Usuario@7538»).

    Cómo puedo arreglarlo?

    Gracias y un saludo!

      1. Hola Isaac!, soy diego nuevamente….!

        Quiero saber si me puedes hechar una mano con esto…..

        Tengo una funcion que me permite cambiar el formato de la fecha que viene desde la base (2012-12-12) a (12-12-2012)…

        Eso lo hace, pero el problema es que nose porque le suma un mes mas al que le pongo fijo a la variable que entra por dicho metodo….

        te muestro el codigo y lo veras mejor…

        ————————————————————–

        static String id_fecha = «2012-02-10»;

        public static String reversefecha(String id_fecha){

        String[] array_fechasol = id_fecha.split(«-«);

        int day = Integer.parseInt(array_fechasol[2]);
        int month = Integer.parseInt(array_fechasol[1]);
        int year = Integer.parseInt(array_fechasol[0]);

        Calendar cal = Calendar.getInstance();

        cal.clear();

        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DATE, day);

        java.util.Date utilDate = cal.getTime();

        SimpleDateFormat sdf= new SimpleDateFormat(«dd/MM/yyyy»);

        String horaFormateada = sdf.format(utilDate);

        return horaFormateada;

        }
        ——————————————————————

        Quiero saber si hay una mejor forma de hacerlo… y la verdad nose cual es le problema que ocaciona dicho comportamiento….

        Espero tu ayuda master!

        Saludos

        Diego

  12. No entendi cuantas classes y donde va en cada una.
    Lo estoy tratando de hacer con el 7.2 .
    Se me complica en el defaultjlistmodel,me tira error y no se como separas las classes,
    es como que esta todo junto.
    Esta exelente, yo hace poco que estoy tratando de practicar porque tome un curso de java standar.
    Saludos y gracias.

    1. Isaac, tengo una pregunta con respecto al jlist,quiero agregar un boton eliminar en el jlist para dar de baja a un elemento cualquiera de la lista.
      No puedo hacerlo porque no se como.Lo unico que puedo hacer es eliminar todos los elementos de la lista.
      Te agradezco si puedes ayudarme.
      Estoy empezando a entender un poco java ya que hace poco estoy estudiando.
      Abrazo y muchas gracias.

  13. que tal muy buena explicacion pero tengo un problemita, que cuando me agrega el objeto al jlist me me lo muestra asi : »Paciente@d5c08f» ,, sé que es algo sencillo pero quisiera saber como hacerle para que solo me muestre el nombre por ejemplo, muchas gracias!

  14. Woah! I’m really digging the template/theme of this website. It’s simple, yet effective.

    A lot of times it’s difficult to get that «perfect balance» between user friendliness and appearance. I must say you’ve done a amazing job with this.
    In addition, the blog loads extremely quick for me on Opera.
    Exceptional Blog!

  15. Can I simply say what a relief to find a person that
    actually knows what they are discussing on the net. You
    certainly know how to bring a problem to light and make it important.
    More people must check this out and understand this side of your story.

    It’s surprising you’re not more popular given that you surely
    possess the gift.

  16. hola mira hice casi todo el codigo hasta donde hay que crear el modelo pero lo pongo a correr y no sale nada del formulario ahi si no se ke hacer ¡ :/

    1. A que te refieres con enviar los resultados a otra clase? Simplemente ten una instancia de tu otra clase y hazlo como desees, pásalo por parámetro en un constructor, manda a llamar un método con parámetro con el valor que le quieras pasar, solo ten las clases publicas y en el mismo paquete. Será que no entendí la pregunta?

      1. mas o menos te entiendo, pero te voy a explicar lo que estoy haciendo, en un archivo java tengo una consulta donde me muestra todos mis clientes y los mando a una tabla, al momento de darle clic a un cliente quiero que me los mande los datos a unos jtextfield de otro archivo java, sabes como hacerlo o tienes alguna idea???
        Coloque unos jtextfield en el mismo archivo donde me muestra mi tabla y al momento de darle clic si me manda los datos a los jtextfield pero quiero que los mande al otro archivo.
        Te agradeceria tu ayuda.

      2. Cuando te refieres a otros archivos Java, es correcto, pero manejalo como Clase publica, te digo, si esos archivos (o clases publicas) están en el mismo paquete (o podrían estar en diferente paquete), lo que puedes hacer es que en la clase donde haces la consulta, es crear una instancia de la 2da clase donde están los txtFields y pasarlo por su constructor, ya en la 2da clase manejas el constructor como desees

      3. A ok, mas o menos te entiendo, deja lo intento a ver que pasa, muchas gracias Isaac se te agradece mucho.

  17. It is hard to dispute the fact that car shopping is a stressful, anxiety-ridden task for many individuals.
    The sheer size of the expenditure involved and the
    myriad of choices on the market make the need for education and information
    quite critical. Fortunately, the tips below can make
    the process far simpler than you may have believed.

  18. You could definitely see your enthusiasm within the
    work you write. The arena hopes for even more
    passionate writers like you who aren’t afraid to mention how they believe. At all times follow your heart.

  19. Hola Issac me parece bien tu explicacion, pero cuanto lo inserto no me inserta el dato correcto sino que pone AnadirDatos@12f55t el nombre de la clase mas numero como resuelvo esto

  20. Hola amigo excelente la explicación estoy haciendo algo similiar, pero entonces si necesito buscar una palabra en el jlist? me tengo que ver obligado a usar un vector que recorra en busca de la palabra que decidí buscar, ya que lo que quiero es tener un botón de buscar y que al escribir una palabra me muestre las coincidencias en la lista con esa palabra, ¿Que debo hacer entonces?,
    y amigo cuando puedas nos explicas como hacer lo mismo pero por medio de un vector… Gracias…

  21. Tengo una duda el programa lo pude hacer pero esta parte no me sale
    private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
    // TODO add your handling code here:
    int index= jList1.getSelectedIndex();
    Usuario objUsuario=(Usuario)modeloLista.getElementAt(index);

    labelnom.setText(«Cliente: «+objUsuario.getNombre());
    labelcorr.setText(«Correlativo: «+objUsuario.getCorrelativo());
    labeldes.setText(«Destino: «+objUsuario.getDestino());
    labelurg.setText(«Urgencia: «+objUsuario.getUrgencia());

    }

    no logro hacer pata que se muestre la informacion en las label

  22. consulta estoy haciendo un formulario Jflame de dos jList en la primera lista debo ingresar palabras que comienzan con vocal en segunda consonantes cual seria el codigo para que funciones?

  23. tal vez algo basico pero necito cargar en una jlist grana cantidad de datos y separalo con espacios no lo he podido conseguir escrito por ejemplo String cadena=»HOLA JEQUE» +»\n»+»TU GLORIA MI GLORIA «+»\n»+»—————————————–«+»\n»;
    modelo.addElement(cadena); claro antes de haber definido mi DefaultListmodelo y adicionar luego a mi jlist ese modelo creado lo que no consigo es separar con el caracter sato de linea
    lo que necesito en la jlist es una salida como esta HOLA JEQUE
    TU GLORIA MI GLORIA
    —————————————-
    ESTO EN UN ELEMENTO DE LA LISTA Y ASI SUCESIVAMENTE
    LES AGRADECEERIA SI ALGUIEN ME AYUDASE

  24. Si quisiera aplicar esa misma interface a estas 2 clases como podria hacerlo sin usar netbean y con Jcreator o BlueJ, de ante mano muchas gracias…

    public class Cliente
    {
    //atributos de la clase
    private String nombre;
    private String rut;
    private String fechaNacimiento;
    private int ingreso;
    private int edad;
    private char sexo;//M masculino F femenino
    private int telefono;
    private String direccion;
    private String contrato;//part-time o full-Time

    //metodo constructor sin parametros
    public Cliente(){
    nombre=»Alister muños rodrigres»;
    rut=»000000-0″;
    fechaNacimiento=»07/08/1989″;
    ingreso=100000;
    edad=20;
    sexo=’M’;
    telefono=00000000;
    direccion= «Siempre viva 123″;
    contrato=»Part-time»;

    }

    //metodo constructor con parametros
    public Cliente(String nombre, String rut, String fechaNacimiento, int ingreso,int edad, char sexo,int telefono,String direccion,String contrato){

    setNombre(nombre);
    setRut(rut);
    setFechaNacimiento(fechaNacimiento);
    setIngreso(ingreso);
    setEdad(edad);
    setSexo(sexo);
    setTelefono(telefono);
    setDireccion(direccion);
    setContrato(contrato);

    }
    //accesadores
    public String getNombre(){

    return nombre;
    }

    public String getRut(){

    return rut;
    }

    public String getFechaNacimiento(){

    return fechaNacimiento;
    }

    public int getIngreso(){

    return ingreso;
    }

    public int getEdad(){

    return edad;
    }

    public char getSexo(){

    return sexo;
    }

    public int getTelefono(){

    return telefono;
    }

    public String getDireccion(){
    return direccion;
    }

    public String getContrato(){

    return contrato;
    }

    //mutadores
    public void setNombre(String nombre){
    nombre=nombre.trim();
    if(nombre.length()=120000){
    this.ingreso=ingreso;
    }else{
    System.out.println(«El ingreso no debe ser menor a 120.000 para postular a la tarjeta»);
    }
    }

    public void setEdad(int edad){
    if(edad>=18 && edad5){
    this.direccion=direccion;
    }else{
    System.out.println(«La direccion debe tener mas caracteres»);
    }
    }

    public void setContrato(String contrato){
    if(contrato==»Part-time»||contrato==»Full-time»){
    this.contrato=contrato;
    }else{
    System.out.println(«EL contrato debe ser Full-time o Part-time solamente»);
    }
    }

    //customer

    public void printDatos(){
    String dato;
    if(getSexo()==’F’){
    dato=»Femenino»;
    }else{
    dato=»Masculino»;
    }

    System.out.println(«Nombre completo:»+nombre);
    System.out.println(«Rut: «+rut);
    System.out.println(«Fecha de nacimiento:»+fechaNacimiento);
    System.out.println(«Ingreso: «+ingreso);
    System.out.println(«Edad: «+edad);
    System.out.println(«Sexo: «+dato);
    System.out.println(» Nº Telefono:»+telefono);
    System.out.println(«Direccion: «+ direccion);
    System.out.println(«Contrato: «);
    System.out.println(«Direccion: «+direccion);
    System.out.println(«Contrato: «+contrato);

    }
    }

    y esta clase llamada tarjeta «Esto es para un trabajo de universidad»
    public class Tarjeta
    {
    //Atributos
    private Cliente clientex;
    private int codigo;
    private int password;
    private int cupo;
    private int cuota;
    private int deuda;
    private boolean habilitada;

    //Metodo Contructor sin parametros
    public Tarjeta(){
    clientex=new Cliente();
    codigo=00000000;
    password=0000;
    cupo=60000;
    cuota=0;
    deuda=0;
    habilitada=false;

    }

    //Metodo Contructor con parametros
    public Tarjeta(Cliente clientex,int codigo,int password, int cupo,int cuota,int deuda, boolean habilitada){
    this.clientex=clientex;
    setCodigo(codigo);
    setPassword(password);
    setCupo(cupo);
    setCuota(cuota);
    setDeuda(deuda);
    this.habilitada=habilitada;
    }

    //Accesadores
    public Cliente getCliente(){
    return clientex;
    }

    public int getCodigo(){
    return codigo;
    }

    public int getPassword(){
    return password;
    }

    public int getCupo(){
    return cupo;
    }

    public int getCuota(){
    return cuota;
    }

    public int getDeuda(){
    return deuda;
    }

    public boolean getHabilitada(){
    return habilitada;
    }

    //mutadores
    public void setCliente(Cliente clientex){
    this.clientex=clientex;
    }

    public void setCodigo(int codigo){
    if(codigo>=10000000 && codigo=1000 || codigo=60000){
    this.cupo=cupo;
    }else{
    System.out.println(«El cupo inicial debe ser 60.000 pesos»);
    }
    }

    public void setCuota(int cuota){
    if(cuota>=0 ||cuota=0 && deuda<=getCupo()){
    this.cupo=cupo;
    }else{
    System.out.println("El la deuda no debe superar al cupo y no debe ser menor a 0");
    }
    }

    public void setHabilitada(boolean habilitada){
    this.habilitada=habilitada;
    }

    //Customer

    public void printTarjeta(){

    clientex.printDatos();
    System.out.println("Codigo: "+codigo);
    System.out.println("Clave: "+password);
    System.out.println("Cupo: "+cupo+" Pesos");
    System.out.println("Habilitada"+ habilitada);

    }

    public void fichaTienda(){

    System.out.println(" Tienda Paradise ");
    System.out.println("");
    System.out.println("______________________________________");
    System.out.println("");
    System.out.println("Nombre Completo :"+clientex.getNombre());
    System.out.println("_______________________________________");
    System.out.println("Cupo:"+cupo+" $ | Codigo: "+codigo+" | Deuda: "+ deuda+" | cuotas: "+cuota);
    }
    //validar usuario

    public boolean validarUsuario(String nombre, int password){
    if(clientex.getNombre()==nombre && getPassword()==password){
    return true;
    }else{
    return false;
    }
    }
    //valor de las cuotas
    public void ValorCuotas(double interes){
    int total;
    total=(int)((deuda/cuota) + interes);
    System.out.println( total);
    }
    //Habilitar tarjeta
    public void habilitarTarjeta(){
    this.habilitada=true;
    this.cupo=60000;
    this.deuda=0;

    }

    //Saldo disponible
    public int disponible(){
    int total;
    total=cupo-deuda;
    return total;
    }
    }

  25. Hola… esta genial el tutorial, pero podrían hacer exactamente lo mismo con una base de datos por favor… lo necesito, he buscado por todas partes y no encuentro nada que me sirva, su tutorial esta muy bien explicado y se acerca muchísimo a lo que quiero pero me sigue dando problemas la base de datos… si lo pudieran hacer se los agradecería infinitamente

  26. hola porfavor necesito que me ayuden tengo 2 jlist uno yeno con cursos de un estudiante y el otro esta vacio y tengo un boton agregar con el cual me permite agregar el curso seleccionado al otro jlist pero el problema esta en que no se debe aceptar que se agrege de nuevo un curso qe ya aya sido agregado al alumno .. gracias de antemano

  27. Hola , tengo una prueba cuando escribo los datos y le doy al botón de guardar , me aparece el nombre y el apellido en el la lista pero cuando pincho sobre esos datos se me escriben otra vez en la parte arriba en vez de en la parte de abajo de información

  28. Buenos dias, estoy buscando una hamaca para bebe para regalarsela a mi sobrino cuando nazca pero ando un poco pelao jejeje, he estado mirando bastante y lo mas economico que he visto ha sido esta pagina. Me preguntaba si alguien conoce alguna aun pero economica y no le importaria compartirla conmigo…gracias!

  29. Hola buenas tardes! Me gustaria saber como puedo agregar al codigo un boton de eliminar. y otro de eliminar todo que borre cada cosa que agregue Al escoger el boton.

  30. Hola buenas noche tengo una consulta el código si me funciona al Ejecutarlo pero al momento de presionar el Jlist ,en el segundo panel aparecen todos los datos agregados menos el ID , siempre sale en 0 , a qué se debería ?
    Agradecería mucho su Repuesta

Deja un comentario